python:等待多个对象(队列、锁、条件等)

Jas*_*n S 5 python concurrency

我正在使用 Python线程库。工作正常(当然,受全局解释器锁的限制)。

现在我有一个难题。我有两个独立的并发源:两个Queue,或者一个 Queue 和一个Condition我怎样才能等待第一个准备好?(它们必须是单独的对象,因为它们由我的应用程序的不同模块部分拥有。)

Windows有WaitForMultipleObjects函数;Python并发原语有类似的东西吗?

小智 0

据我所知,您所询问的现有功能还没有存在。然而,我认为threading.enumaerate()可能会返回所有当前守护线程的列表,无论其来源如何。获得该列表后,您可以对其进行迭代以查找所需的条件。要将线程设置为守护进程,每个线程都有一个可以在线程启动之前调用的方法,例如 thread.setDaemon(True) 。

我不能肯定地说这就是你的答案。我显然没有你那么多的经验,但我在我手头的一本书《Python 标准库示例》中查找了这一点,作者是 Doug Hellmann。他在线程部分中有 23 页关于管理并发操作的内容,并且列举了一些可能会有所帮助的内容。