day32-2プロセスのスレッドプールとプール

プロセスとスレッドプールプール

スレッドプールは、スレッドプールの設備、プール・プロセスのプールがロードされているプロセスです。

1.リソースのオーバーヘッドをもたらすために頻繁に作成および破壊スレッド(プロセス)を避けます

2.サーバがリソースので崩壊につながらないことを確実にするために存在するスレッドの数を制限することができます

3.あなたは、私たちは、スレッドのライフサイクルを管理することができます

4.管理タスクの割り当て

スレッドプールを使用します

import time
from concurrent.futures import ThreadPoolExecutor
from threading import currentThread


def task():
    time.sleep(2)
    print(currentThread().name)  # 打印线程名


pool = ThreadPoolExecutor(5)  # 创建线程池,指定最多可以容纳5个线程
for i in range(10):
    pool.submit(task)  # 提交任务到池子中


print('start...')
pool.submit(task)  # 线程池中的线程执行完后会一直存活
pool.shutdown()  # 存活直到强制关闭线程池
pool.submit(task)  # 关闭后再次提交会报错 

プロセスプールの使用

import os
import time
from concurrent.futures import ProcessPoolExecutor


def task():
    time.sleep(2)
    print("current pid:", os.getpid())


if __name__ == '__main__':
    pool = ProcessPoolExecutor(3)  # 创建进程池,指定最大可以容纳3个进程
    for i in range(10):
        pool.submit(task)  # 提交任务到进程池中

    pool.shutdown()  # 存活直到强制关闭进程池
    pool.submit(task)  # 关闭后再次提交会报错 

#パスパラメータは、タスクを与えるとき(タスク、パラメータ)を提出し、引数を書いていない、などの直接書き込みパラメータ

おすすめ

転載: www.cnblogs.com/863652104kai/p/11146147.html