并发编程--线程池与进程池
生活随笔
收集整理的這篇文章主要介紹了
并发编程--线程池与进程池
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
核心思想
以時(shí)間換空間
進(jìn)程池
進(jìn)程池:一個(gè)容器,這個(gè)容器限制住你開(kāi)啟進(jìn)程的數(shù)量,默認(rèn)是os.cpu_count(),我的電腦是8核,所以能開(kāi)啟8個(gè),第一次肯定只能并行的處理8個(gè)任務(wù),只要有任務(wù)完成,進(jìn)程馬上就會(huì)接下一個(gè)任務(wù)。
代碼實(shí)現(xiàn):
from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor import os,time,random# print(os.cpu_count()) def task(n):print(f"{os.getpid()} 接客")time.sleep(random.randint(1,3))if __name__ == '__main__':p = ProcessPoolExecutor()for i in range(30):p.submit(task,1)線程池
線程池:線程最多能執(zhí)行的是進(jìn)程的5倍,也就是40個(gè)
代碼實(shí)現(xiàn):
from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor import os,time,random# print(os.cpu_count()) def task(n):print(f"{os.getpid()} 接客")time.sleep(random.randint(1,3))if __name__ == '__main__':# p = ProcessPoolExecutor()# for i in range(30):# p.submit(task,1)t = ThreadPoolExecutor()for i in range(200):t.submit(task,i)轉(zhuǎn)載于:https://www.cnblogs.com/alex3174/p/11403107.html
總結(jié)
以上是生活随笔為你收集整理的并发编程--线程池与进程池的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql执行出错:Table 'k_u
- 下一篇: android 9.x 实现应用内更新安