並行プログラミング - プロセスのスレッドプールとプール

核となるアイデア

スペースのための時間

プロセスプール

プロセスプール:あなたがプロセスを開いた容器、数量のコンテナ限度は、デフォルトでは(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)

おすすめ

転載: www.cnblogs.com/alex3174/p/11403107.html
おすすめ