问答

python中多线程及多进程实现

作者:admin 2021-06-07 我要评论

下面是一段多线程的示例代码 #!/usr/bin/python3 import?_thread import?time #?为线程定义一个函数 def?print_time(?threadName,?delay): ???count?=?0 ???whil...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

下面是一段多线程的示例代码

#!/usr/bin/python3  
  
import?_thread  
import?time  
  
#?为线程定义一个函数  
def?print_time(?threadName,?delay):  
???count?=?0  
???while?count?<?5:  
??????time.sleep(delay)  
??????count?+=?1  
??????print?("%s:?%s"?%?(?threadName,?time.ctime(time.time())?))  
  
#?创建两个线程  
try:  
???_thread.start_new_thread(?print_time,?("Thread-1",?2,?)?)  
???_thread.start_new_thread(?print_time,?("Thread-2",?4,?)?)  
except:  
???print?("Error:?无法启动线程")  
  

我想实现的是

a = [ "Thread-%s" % i for i in range(100)]

10个线程同时打印,打印完即止

同理多进程中应该怎么实现

###

多进程建议使用:multiprocessing模块

# -*- coding:utf-8 -*-
import  os
from multiprocessing import Pool

class MultiProcess(object):

    def __init__(self, process_count):
        self.__process_count = process_count

    def multi_process(self, obj_name, fun_name, fun_args):
        fun = getattr(obj_name, fun_name)
        print('Parent process %s.' % os.getpid())
        pool = Pool(self.__process_count)
        print(obj_name, fun_name, fun_args)
        for fun_arg in fun_args:
            print(fun_arg)
            pool.apply_async(fun, args=fun_arg)
        print('Waiting for all subprocesses done...')
        pool.close()
        pool.join()
        print('All subprocesses done.')

class A():
    def num_test(self, nums):
        print([num for num in range(nums)])

    def run(self):
        MultiProcess(2).multi_process(A, "num_test", [(self, 9,), (self, 5,)])

if __name__ == "__main__":
    A().run()
    # MultiProcess(2).multi_process(A, "num_test", [(None, 9,), (None, 5,)])

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • python中多线程及多进程实现

    python中多线程及多进程实现

  • 多设备共用串口

    多设备共用串口

  • GitHub page页面一刷新就报404 是为什

    GitHub page页面一刷新就报404 是为什

  • 拖拽本地图片到textarea上,拖拽过程中

    拖拽本地图片到textarea上,拖拽过程中

腾讯云代理商
海外云服务器