C- glib螺纹与gmain循环事件



我有一个简单的系统,其中有一个闪闪发光的结构。有两个线程:例如Head((,导致数据进入浮雕结构。另一个线程尾((导致列表末端的数据出口(及其处理(。

我将最初使用pthreads实现此功能,但是GLIB文档本身建议,代替线程,应将带有上下文的主循环用于附加源和派遣回调。

通常,尚不清楚GLIB主循环,主要上下文和源系统尝试解决哪些问题。我所能收集的只是它在读取套接字数据,与Poll((和UI Eventing System的并行性中找到应用程序。

Glibmainloop系统的用例是什么?就我的问题声明而言,它适用吗?

glib是GNOME项目的一部分。它首先是在GUI应用中构建的,尽管它不限于使用该应用。它的GUI编程模型是一个典型的基于事件的模型,该模型是由接收事件并适当派遣到组件的主循环驱动的。您应该以此方式解释文档。

听起来您的不是GUI应用程序,其唯一的glib关联就是使用闪光。在这种情况下,我发现闪闪发光是一个可疑的选择,但不一定是错误的选择。选择Glist并不意味着您应该承诺进行事件驱动的程序设计,如果您不这样做,那么您可能没有使用GLIB主事件循环。

尽管如此,事件驱动的设计可能会很好地为您服务,在某些方面,它比多线程更简单。很大程度上取决于您的生产者和消费者应该做的事情的细节。

最新更新