标签:
python 进程
优点:可以处理大量的并发操作,使用IO计算型
缺点:由于进程之间的数据都是独立,所以创建一个进程,就得消耗一份内存 (进程和cpu核数相同的情况最好)
Process :进程 (让我想到了40个人,要烧40壶水,要弄40个炉子,但是效率高)
进程中有 join (2) 阻塞住啦,最多阻塞2秒钟;demaon(true) 可以设置不阻塞,直接运行。
都说进程之间的数据是独立,那么我们你能将进程之间的数据共享吗,聪明的人类,当然可以,那就用到了mange和array
arrary 这个东西 就是将一个列表转换成一个特殊的数据类型(数组),manage 方式数据共享
from multiprocessing import Process from multiprocessing import Manager import time if __name__ == ‘__main__‘: manage = Manager() dic = manage.list() def foo(i): dic[i]=100+i print (dic.values()) for i in range(10): p = Process(target=foo,args=(i,)) p.start() print(dic.values())
这个思路太混啦,不过老师说,这个进程数据共享用的不多,n
进程池
进程池内部维护一个进程序列,当使用时,则去进程池中获取一个进程,如歌进程池中没有可供使用的进程池,那么程序就会等待,直到进程池有可用的进程为止
进程池有两个方法:
协程
线程和进程的操作是由程序触发接口,最后的执行者是系统,协程的操作则是程序员
协程存在的意义;对于多线程的应用,cpu通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。协程,则只使用一个线程,在一个线程中规定某个代码块执行顺序
协程的使用场景:当程序中存在大量不需要CPU的操作时(IO)
标签:
原文地址:http://www.cnblogs.com/05-xiaoyi/p/5698993.html