python中多线程及多进程实现
下面是一段多线程的示例代码
#!/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,)])
以上是 python中多线程及多进程实现 的全部内容, 来源链接: utcz.com/a/156365.html