我正在使用pthread开发一个多线程的C语言应用程序。其中一个线程将数据写入数据库(数据库库只能在单个线程中安全使用),而其他几个线程则收集数据、处理数据,然后需要将结果发送给数据库线程进行存储。我看到有人提到在C语言中可以实现“多写者安全队列”,但每次看到这样的提及时都说“对于这个示例来说太复杂了”,并且只是演示一个“单写者安全队列”。
我需要以下内容:
- 高效的插入和删除。我认为像其他任何队列一样,O(1)的入队和出队是可能的。
- 动态分配内存,即链式结构。我需要不受大小限制的队列,因此数组并不是我要找的东西。
编辑:读取线程不应该在空队列上旋转,因为在没有写入的情况下可能会有几分钟的时间,而在短时间内会有大量的写入。