glib有一个名为 的数据结构GAsyncQueue
,它允许在没有信号量/锁等的情况下进行线程间通信,甚至使实现生产者/消费者解决方案的任务变得微不足道。GAsyncQueue
如果两个不同的线程向一个结构推送数据,push
函数内部实现对队列的互斥访问;更可怕的是,如果一个线程调用该pop
函数,并且那里没有数据,则调用线程会阻塞,直到一些数据被其他线程推入队列。所有这些都以线程安全的方式完成,对开发人员透明。
尽管我很喜欢它,但这个库是为 C 构建的,对于高级语言可能有更好的替代方案。无论如何我都在考虑使用 glib,但是在 C++ 代码中使用 C 库感觉很奇怪......
所以,问题是:是否有 C++ 推荐的 glib 等价物?更具体地说,是否有更推荐的 C++ 库提供与GAsyncQueue
?