1. 程式人生 > >最方便建立進程池,線程池的方法

最方便建立進程池,線程池的方法

for ret port 來講 tor i/o getpid .get span

建立進程池,線程池:

進程池
from
concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time,random,os def task(n): print(%s is running%os.getpid()) time.sleep(5) return n**2 if __name__ == __main__: p = ProcessPoolExecutor() l=[] start=time.time() for i in range(20): obj
=p.submit(task,i) l.append(obj) p.shutdown() print([obj.result()for obj in l]) print(time.time()-start)
線程池
from
concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time,random,os def task(n): print(%s is running%os.getpid()) time.sleep(5) return
n**2 if __name__ == __main__: p = ThreadPoolExecutor() l=[] start=time.time() for i in range(20): obj=p.submit(task,i) l.append(obj) p.shutdown() print([obj.result()for obj in l]) print(time.time()-start)

在這裏我要聲明一下,多進程,以及多線程,進程池,線程池:

多進程,簡單來來講就是好多個進程在做事,當進行I/O操作的是時候,一個進程去做這件事,其他進程就只能等著,只有這個進程做完了,其他進程才能去做,就和上廁所是一樣,一個人上廁所,其他人都得等著,在這裏又出現一個進程池,所謂的進程池就是用來規範多進程的,不理解吧,(這樣多進程用於計算的時候,比如說你有好多的進程2000000個,這麽多都在計算是不是很可怕,這裏添加一個進程池約束一下是不是就完美了,裏面的計算完了,外面的再進來計算)

多線程,怎麽講呢,就是在一個進程裏面,所以這個進程裏面的資源對於線程來說就是共享的啦,多線程常用於I/O操作,

最方便建立進程池,線程池的方法