请注意,我使用的是 Python,但这可能适用于 glib 中的任何其他绑定。
glib.io_add_watch()
我有一个类,它通过和一个回调方法设置多个套接字连接foo()
。此外,我有一个glib.idle_add()
回调到一个名为bar()
. foo()
创建或更新可以是任何值(包括无)的元素列表(类成员)。 bar()
从上面的列表中删除任何 None 项目——我们已经完成了这些,我们不再关心。实际上,它清理了一切。
glib 是否允许每个线程在任何时候只调用一个回调?
foo()
如果我在线程一和线程二中运行这段代码bar()
,就会出现竞争条件。我认为一个简单的互斥锁可以解决这个问题,但有没有更有效的方法来做到这一点?