码迷,mamicode.com
首页 > 其他好文 > 详细

并发编程中使用到的模块,相关总结

时间:2018-10-05 12:19:24      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:ted   target   pre   多进程   manage   RoCE   manager   时间   call   

多进程:

multiprocessing包

  开启进程:multiprocessing.Process,

  进程池:multiprocessing.Pool,

  进程间同步控制:multiprocessing.Lock  multiprocessing.Semaphore  multiprocessing.Event

  进程间通信:multiprocessing.Queue  multiprocessing.Pipe

  进程间数据共享:multiprocessing.Manager  

            

多线程:

threading包(Thread,Lock,RLock,Semaphore,Event,),queue(线程中的队列),线程池(concurrent.futures)

 

协程:

 

IO模型:

 

异步框架:twisted,tornado

同步框架:django

 

需要开启多进程/线程,并且需要 start()方法的:

  Process(target=,args=()) :lock,semaphore,event,Queue,pipe,都要实例化后,把这个实例化传入 args,然后再使用

  Thread(target=,args=()) :lock,semaphore,event,Queue,pipe,都要实例化后,把这个实例化传入 args,然后再使用

 

进程池:开启异步多进程  p = Pool(5), p.apply_async

  Pool.apply_async(func,args,args=(x,y,...),callback=func2) #进程池中不用target=了,直接写函数名,但是传参还是要用args,回调函数  callback=函数2名字

 

 

#和进程一样,主线程会等到子线程执行完才结束。 设置守护线程也是 t.daemon=Ture
#守护进程会随着主进程的结束而结束
#守护线程会在主线程结束之后等待子线程的结束才结束,主进程只是代码运行结束,但是没关闭,因为主进程要留着内存资源给子线程用
#但是如果进程既有子线程,也有子进程,会等到所有代码结束完,才结束。因为主进程没结束,所以守护线程还会运行

# 进程的生命周期
# 主进程
# 子进程
# 开启了子进程的主进程 :
# 主进程自己的代码如果长,等待自己的代码执行结束,
# 子进程的执行时间长,主进程会在主进程代码执行完毕之后等待子进程执行完毕之后 主进程才结束

#···子进程不一定要依赖运行着的父进程
#至于父进程如果关闭了 但是子进程没运行完,
#比如 控制台 python XXX.py 运行了py文件,此时如果关闭了控制台,py文件是否会跟着关闭?
#在linux中 如果 python XXX.py & 后面跟上&则 py文件会一直在后台运行
#所以,关闭父进程,子进程是否关闭要看是怎么规定的

并发编程中使用到的模块,相关总结

标签:ted   target   pre   多进程   manage   RoCE   manager   时间   call   

原文地址:https://www.cnblogs.com/gkx0731/p/9744204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!