Joblib库多进程/线程使用(一):使用generator参数实现边响应边使用
进程与线程的基本概念
特性 | 进程 (Process) | 线程 (Thread) |
---|---|---|
定义 | 操作系统分配资源的基本单位(独立的内存空间) 多进程可真正并行(利用多核 CPU) | 进程内的执行单元(共享进程资源) |
独立性 | 完全独立,崩溃后不影响其他进程 | 共享进程资源,一个线程崩溃可能导致整个进程崩溃 |
资源开销 | 高(需要分配独立的内存、文件句柄等) 不可直接共享,需通过 IPC(如管道、共享内存) | 低(共享进程资源,仅需少量栈和寄存器) 可直接访问全局变量(需同步机制避免竞争) |
数据共享 | 必须通过 IPC(进程间通信):<br> - 管道(Pipe)<br> - 共享内存(Shared Memory)<br> - 消息队列(Queue) | 直接共享进程内存(需锁机制) |
同步机制 | 通常不需要 | 需要锁(Lock |