骆大神博客贴这里:骆大神博客---进程线程
IPC:inter-Process Communication 进程间通信机制,用来实现数据共享。主要方式有:管道、信号、缓冲池、套接字、共享内存 区等。
进程:操作系统执行过程中的一个程序,每个进程都有自己的地址空间、数据栈及其他部分辅助数据,操作系统会为他们分配资 源。
创建:fork 和spawn.
线程:拥有多个并发的执行线索。在同一个进程下,可以共享相同的资源,主要分为单线程和多线程,使用多线程实现并发变成可以提升程序的性能和改善用户体验,不足则是它占用的CPU执行时间长,可能会导致其他程序无法获得足够的CPU执行时间。就开发者而言,也要求颇高,开发难度略高。
多进程:利用fork()创建进程(返回2次),调用fork()函数的是父进程(返回子进程),创建出的子进程(返回永远为0)是父进程的一个拷贝,但其拥有自己的PID。
使用:windows系统中,跨平台实现:
from multiprocessing import Process
此模块中还有很多会用到的封装,如pool(进程池)Queue(进程间通信de的队列)Pipe(管道)等。
多线程:同时可执行多个线程,不用等待(即共享进程的内存空间),可设置全局变量。
缺点:当多个线程共享一个资源的时候,程序可能会崩,自己的理解是狼多肉少,这时这种肉就是临界资源,为保护这种资源,我们可以开一个守护线程。