python线程和绿色线程中的锁定行为之间的任何区别


通常

的python线程和绿线程(eventlet)中的threading.Lock()threading.Semaphore()行为之间有什么区别吗?

行为没有区别。但是,绿色线程实际上并不是线程,因为它在单个操作系统线程中运行其所有任务,因此threading.Lockthreading.Semaphore的行为就像是从单个线程锁定和解锁一样。

这意味着如果您在使用绿色线程时尝试获取锁定的锁或清零信号量,则整个程序将永远阻塞(或直到指定的超时)。此外,RLock 只能从它锁定的同一线程中释放,因为绿色线程实际上都在同一线程上运行,您将能够从不同的绿色线程释放 RLock。

简而言之,使用绿色螺纹时不要使用threading锁。

相关内容

  • 没有找到相关文章

最新更新