併發程式設計 執行緒池與程序池

2022-02-24 22:35:29 字數 1032 閱讀 8335

以時間換空間

程序池:乙個容器,這個容器限制住你開啟程序的數量,預設是os.cpu_count(),我的電腦是8核,所以能開啟8個,第一次肯定只能並行的處理8個任務,只要有任務完成,程序馬上就會接下乙個任務。

**實現:

from concurrent.futures import processpoolexecutor,threadpoolexecutor

import os,time,random

# print(os.cpu_count())

def task(n):

print(f" 接客")

time.sleep(random.randint(1,3))

if __name__ == '__main__':

p = processpoolexecutor()

for i in range(30):

p.submit(task,1)

執行緒池:執行緒最多能執行的是程序的5倍,也就是40個

**實現:

from concurrent.futures import processpoolexecutor,threadpoolexecutor

import os,time,random

# print(os.cpu_count())

def task(n):

print(f" 接客")

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)

併發程式設計之執行緒池,程序池

池 受限於硬體的發展,硬體跟不上軟體的發展 在保證計算機硬體安全的情況下,最大限度的利用了計算機 池其實是降低了程式的執行效率,但是保證了計算機硬體的安全 我們再使用程序和執行緒時,不可能無限制的去開程序或執行緒。因此我們需要用到程序池,執行緒池來解決這一問題。1.concurrent模組是用來建立...

併發程式設計 程序池與執行緒池 練習3

通過繼承multipocessing類,實現乙個程序池。coding utf 8 實現乙個程序池 import time import multiprocessing from multiprocessing import manager,queue class myprocess object d...

併發程式設計 程序池與執行緒池 練習2

通過繼承threading類,實現乙個執行緒池 coding utf 8 自己實現乙個執行緒池 import time import queue import threading class mythreadpool object def init self,num super init self....