zoukankan      html  css  js  c++  java
  • python 阻塞模式 进程池

     1 """
     2 阻塞模式:一个一个任务单独放进进程池,处理完一个再放下一个任务进来,主进程要等着些执行完再执行
     3 """
     4 
     5 import os
     6 import time
     7 from multiprocessing import Pool
     8 from random import random
     9 
    10 
    11 def task(name):
    12     print("进行任务{}  进程ID:{}".format(name, os.getpid()))
    13     start = time.time()
    14     # random() 的值是0到1之间,这里就表示休眠 0到2秒
    15     time.sleep(random() * 2)
    16     end = time.time()
    17     print("完成任务:{}  用时:{}  进程ID:{}".format(name, (end - start), os.getpid()))
    18 
    19 
    20 if __name__ == '__main__':
    21     pool = Pool(5)  # 创建一个进程池,里面放5个进程
    22     tasks = ["任务1", "任务2", "任务3", "任务4", "任务5", "任务6", "任务7"]
    23     for t in tasks:
    24         # apply 阻塞模式,一个一个任务单独放进进程池,进程池中的进程被轮流使用
    25         pool.apply(task, args=(t,))
    26 
    27     pool.close()  # 当进程池close的时候并未关闭进程池,只是会把状态改为不可再插入元素的状态,完全关闭进程池使用
    28     # pool.join()  # 阻塞模式的只有当它里面的任务全部都执行完,才继续,所以不需要这步
    29 
    30 
    31     print("over")
  • 相关阅读:
    mysql触发器的实战经验
    mysql存储程序查看
    索引性能优化(待整理)
    MySQL性能测试工具
    列级触发器 SQL Server
    synthetic division
    This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
    mysql触发器和定时器
    数据库触发器有以下的作用
    mysql 日志
  • 原文地址:https://www.cnblogs.com/cfpl/p/12991921.html
Copyright © 2011-2022 走看看