欢迎光临
我们一直在努力

python 进程池的两种不同实现

方式一:使用 multiprocessing 库

from loguru import logger
import multiprocessing


def start_request(message: str) -> int:
    try:
        logger.debug(message)
    except Exception as error:
        logger.exception(error)


if __name__ == "__main__":

    pool = multiprocessing.Pool(processes=2)

    for message in ['haha', 'hehe']:
        pool.apply_async(start_request, (message,))

    pool.close()
    pool.join()

方式二:使用 concurrent.futures 的 ProcessPoolExecutor

from loguru import logger
import multiprocessing
from concurrent.futures import ProcessPoolExecutor


def start_request(message: str) -> int:
    try:
        logger.debug(message)
    except Exception as error:
        logger.exception(error)


if __name__ == "__main__":

    pool = ProcessPoolExecutor(
        max_workers=2
    )

    for message in ['haha', 'hehe']:
        pool.submit(start_request, message)

    pool.shutdown(wait=True)

https://segmentfault.com/a/1190000043747872

未经允许不得转载:IT极限技术分享汇 » python 进程池的两种不同实现

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址