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