核となるアイデア
スペースのための時間
プロセスプール
プロセスプール:あなたがプロセスを開いた容器、数量のコンテナ限度は、デフォルトでは(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"{os.getpid()} 接客")
time.sleep(random.randint(1,3))
if __name__ == '__main__':
p = ProcessPoolExecutor()
for i in range(30):
p.submit(task,1)
スレッドプール
スレッドプール:スレッドが40で5回プロセス、まで行うことができます
コードの実装:
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)