1. 多线程和多进程的区别:
进程之间不共享内存,线程之间可以共享内存
多进程可以利用多颗cpu,多线程不行。
2. cpu全局解释器锁(GIL)
在每个进程的出口,多个线程任务请求cpu调度,只有一个线程能够穿过,所以单个进程不管有多少线程只能调度一个cpu。
3. 多线程、多进程如何选择:
计算密集型应用:能够利用多颗cpu的性能,采用多进程;
IO密集型应用:大量的IO操作,调度一颗cpu足以,采用多线程。
4. 主线程:
程序从上往下执行,解释器的执行过程,叫主线程。
进程之间不共享内存,线程之间可以共享内存
多进程可以利用多颗cpu,多线程不行。
在每个进程的出口,多个线程任务请求cpu调度,只有一个线程能够穿过,所以单个进程不管有多少线程只能调度一个cpu。
计算密集型应用:能够利用多颗cpu的性能,采用多进程;
IO密集型应用:大量的IO操作,调度一颗cpu足以,采用多线程。
程序从上往下执行,解释器的执行过程,叫主线程。