# 单线程

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:'\033[1;32mThreadPoolExecutor %d\033[0m' % i,range(10)) # tpe.map(run,tuple(args)) for i in range(10): tpe.submit(run,'\033[1;32mThreadPoolExecutor %d\033[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=('\033[1;32mpool %d\033[0m' % i,))
#close 和join都不能缺少且顺序要对
pool.close()
pool.join()

 


 

posted on 2019-07-16 08:13  天0涯  阅读(157)  评论(0编辑  收藏  举报