import multiprocessing
import time
import random
import os
def worker(msg):
t_start = time.time()
print("%s開始執行,程式號為%d" % (msg,os.getpid()))
# random.random()隨機生成0~1之間的浮點數
time.sleep(random.random()*2)
t_stop = time.time()
print(msg,"執行完畢,耗時%0.2f" % (t_stop-t_start))
if __name__ == '__main__':
# 1 建立程式池
pool = multiprocessing.Pool(3)
# 2 新增任務 ---> 兩種
# apply新增任務的方式 阻塞的任務新增方式 任務新增到程式池中的程式中執行
# 會阻塞等待任務執行完成 才會繼續往下執行
pool.apply(func=worker, args=('000',))
pool.apply(func=worker, args=('111',))
# 非阻塞的任務新增方式 把任務新增到程式中執行 不阻塞等待任務執行完成
pool.apply_async(func=worker, args=('222',))
pool.apply_async(func=worker, args=('333',))
# 主程式一旦退出 就會導致所有的任務《子程式 不是通過繼承的方式建立出來的》全部結束
# 3 關閉程式池-不再允許新增任務
# pool.close()
# 3 直接終止所有正在執行的子程式
pool.terminate()
# 4 等待所有任務執行完成
pool.join()
複製程式碼
python 程式池
相關文章
- Python執行緒池與程式池Python執行緒
- Python 併發程式設計之執行緒池/程式池Python程式設計執行緒
- Python併發程式設計之執行緒池/程式池Python程式設計執行緒
- Python程式專題4:程式池PoolPython
- python中自帶的線程式池Python線程
- python 程式池的兩種不同實現Python
- python 程式池pool簡單例項薦Python單例
- 程式池
- python 物件池Python物件
- 記憶體池、程式池、執行緒池記憶體執行緒
- python - 建立代理池Python
- Python多程序中並行程式設計與程序池Python並行行程程式設計
- python 爬蟲 代理池Python爬蟲
- Python爬蟲代理池Python爬蟲
- 程式池、執行緒池效率測試執行緒
- IIS應用程式池標識(程式池賬戶)ApplicationPoolIdentifyAPPIDE
- Python的執行緒池Python執行緒
- python執行緒池示例Python執行緒
- Python 執行緒池使用Python執行緒
- python資料庫連線池Python資料庫
- python中的執行緒池Python執行緒
- Python實現MySQL連線池PythonMySql
- python 學習--執行緒池Python執行緒
- 在Python中用concurrent.futures建立執行緒池程序池Python執行緒
- python執行緒池的實現Python執行緒
- Python資料庫連線池DButilsPython資料庫
- python中小資料池和編碼Python
- 【Python】用Python實現一個簡單的執行緒池模型效果程式碼分析講解Python執行緒模型
- Python 爬蟲IP代理池的實現Python爬蟲
- python實現自定義執行緒池Python執行緒
- 使用concurrent.futures模組併發,實現程式池、執行緒池執行緒
- python爬蟲利用requests製作代理池sPython爬蟲
- Python執行緒池ThreadPoolExecutor原始碼分析Python執行緒thread原始碼
- Python 中的 MySQL 資料庫連線池PythonMySql資料庫
- Python 潮流週刊#28:兩種執行緒池、四種最佳化程式的方法Python執行緒
- 你是否真的懂 [程式的執行順序] 多程式 / 程式池
- 基於程式池的多程式伺服器通訊伺服器
- windows核心程式設計--執行緒池Windows程式設計執行緒