进程>线程>协程
进程在Linux中用fork调用,在Windows中用multiprocessing 里的process来调用
进程,可以理解为程序,线程可以理解为程序里的功能,或者说窗口,而协程就是更合理地分配资源,对资源进行调度的
进程阻塞式和非阻塞式
进程池:Pool
非阻塞式:进程池名称.apply_async()全部添加至队列,立刻返回,没有等其他进程执行完毕再返回,回调函数是等任务完成之后调用
阻塞式:进程池名称.apply()添加一个执行一个,等结束后才添加下一个
.run():只是运行而不另开进程
.start()开进程且运行
进程间的通信:
Queue()
.put():放入
.get():得到
.qsize():大小
.empty():判断是否为空
.full():判断是否为满
.close()添加任务结束
.join()开始
线程
threading.Thread()
自带同步锁GIL,数大了就会自动解锁
lock=threading.lock():上锁
lock.acquire():请求得到锁
lock.release():释放锁
协程
生成器 yield
greenlet:完成协程任务
通过.switch()来完成