python 线程、进程

# 单线程

from threading import Thread

p =Thread(target=func, args=("arguments",)) p.start() p.join() # 等待子进程结束后再继续往下运行

# 线程池



from  concurrent.futures import ThreadPoolExecutor

'''
线程池: map:接收一个函数,和一个参数元组,遍历元组,执行len(元组)次线程 submit:接收一个函数和参数,执行一次线程 :return: ''' with ThreadPoolExecutor(10) as tpe: # args = map(lambda i:'33[1;32mThreadPoolExecutor %d33[0m' % i,range(10)) # tpe.map(run,tuple(args)) for i in range(10): tpe.submit(run,'33[1;32mThreadPoolExecutor %d33[0m' %i)

#进程以及进程通信


from multiprocessing import Process,Queue,Pipe,Manager
  
  
'''
Queue:进程队列,用于数据交换
Pipe:进程管道,用于数据交换
Manager:同步管理器,用于数据共享
'''
# 创建进程队列
   queue = Queue()
# 必须在多进程创建之前,创建管道,该管道是双向的
   (output_p, input_p) = Pipe()
#创建同步管理器
   l = Manager().list()
   d = Manager().dict()
   p = Process(target=run2, args=(queue,output_p,input_p,l,d))
    p.start()
    p.join()  # 等待子进程结束后再继续往下运行

# 进程池


from multiprocessing import Process,Pool
pool = Pool(2)
for i in range(10):
  pool.apply_async(func
=run, args=('33[1;32mpool %d33[0m' % i,))
#close 和join都不能缺少且顺序要对
pool.close()
pool.join()

原文地址:https://www.cnblogs.com/lides/p/11192700.html