python中的并发编程

首先在python并发编程中,必须把建立子进程的部分使用if __name__ ==‘__main__’ 判断保护起来。这个缘由是什么呢?python

在python中每个py文件要么做为程序直接执行,要么被别的文件导入执行。if __name__ ==‘__main__’ 这个语句之下的程序只会在直接执行时才会走,若是是被别的文件导入该语句之下的程序就不会走。在windows下建立子进程会自动import启动它的这个文件,而import的时候又执行了整个文件,所以若是将process()直接写在文件中就会无限递归建立子进程报错。因此必须把建立子进程的部分使用if __name__ ==‘__main__’保护起来。编程

一点小总结:windows

经过学习了解IO密集型比较适合用多线程解决多线程

cpu密集型比较适合用多进程解决并发

然而协程:使用进程中一个线程去作多个任务,微线程异步

GIL:用于在进程中对全部线程加锁,保证同一时刻只能有一个线程被cpu调度学习

 

异步IO 在一个线程去处理请求时,遇到IO阻塞,该线程就去处理别的请求去了,线程

保证线程不会停下来等待,形成资源的浪费。协程

经过学习了解IO密集型比较适合用多线程解决cpu密集型比较适合用多进程解决然而协程:使用进程中一个线程去作多个任务,微线程GIL:用于在进程中对全部线程加锁,保证同一时刻只能有一个线程被cpu调度异步IO 在一个线程去处理请求时,遇到IO阻塞,该线程就去处理别的请求去了,保证线程不会停下来等待,形成资源的浪费
相关文章
相关标签/搜索