程序池與執行緒池
阿新 • • 發佈:2019-01-27
為什麼要用‘池’:
池是用來限制併發的任務的數目,限制我們的計算機在一個自己可承受的範圍內去併發地執行任務。
池子內什麼時候裝程序:併發的任務屬於計算密集型。
池子內什麼時候裝執行緒:併發的任務屬於I/O密集型。
程序池的使用
執行結果:from concurrent.futures import ProcessPoolExecuto import time,os,random def task(x): print('%s 去服務' %os.getpid()) time.sleep(random.randint(4,5)) return x**2 if __name__ == '__main__': p=ProcessPoolExecutor(max_workers=5)#預設開啟的程序數是cpu的核數 for i in range(20): p.submit(task,i)
執行緒池的使用:
from concurrent.futures import ThreadPoolExecutor import time,os,random def task(x): print('%s 去服務' %os.getpid()) time.sleep(random.randint(4,5)) return x**2 if __name__ == '__main__': p=ThreadPoolExecutor()#預設開啟的程序數是cpu的核數 for i in range(20): p.submit(task,i)
執行結果: