Python中命名的信号量?

Boa*_*oaz 12 python multithreading semaphore cross-process

我在python中有一个脚本,它使用的资源不能超过一定数量的并发脚本运行.

传统上,这可以通过命名信号量来解决,但我无法在多处理模块或线程的文档中找到它们.

我是否遗漏了某些东西,或者是未被Python实现/暴露的命名信号量?更重要的是,如果答案是否定的,那么模仿一个人的最佳方式是什么?

谢谢,波阿斯

PS.由于与此问题不太相关的原因,我无法将任务聚合到持续运行的进程/守护进程或使用生成的进程 - 这两者似乎都适用于python API.

Ale*_*lli 4

我建议使用像这样的第三方扩展,最好是这样posix_ipc的扩展 - 特别请参阅文档中的信号量部分。

这些模块主要是关于以 unixy 方式公开“system V IPC”(包括信号量),但至少其中一个(posix_ipc特别是)声称可以在 Windows 上与 Cygwin 一起使用(我尚未验证该声明)。FreeBSD 7.2 和 Mac OSX 10.5有一些记录在案的限制,因此如果这些平台对您很重要,请务必小心。