Jas*_*ker 13 python multithreading locking process multiprocessing
如果一个软件项目支持版本的Python是多已回迁到,没有任何理由使用threading.Lock
过multiprocessing.Lock
?将一个multiprocessing
锁不是线程安全的呢?
对于这个问题,有没有理由使用任何来自同步原语threading
是也multiprocessing
?
jno*_*ler 16
由于缺乏处理共享信号量等问题,线程模块的同步原语比多处理更轻,更快.如果使用线程; 使用线程的锁.进程应该使用多处理锁.
我希望多线程同步原语会更快,因为它们可以轻松使用共享内存区域。但我想你必须进行速度测试才能确定。此外,您可能会产生非常不需要的副作用(并且在文档中未指定)。
例如,进程级锁很可能会阻塞进程的所有线程。如果没有,释放锁可能不会唤醒进程的线程。
简而言之,如果您希望代码能够正常工作,那么如果您使用线程,则应该使用线程同步原语;如果使用进程,则应该使用进程同步原语。否则,它可能仅适用于您的平台,甚至仅适用于您的特定版本的 Python。
归档时间: |
|
查看次数: |
3160 次 |
最近记录: |