我的程序的一部分创建了某种消息,然后在第二部分中对这些消息进行处理。
我需要在程序的各个部分之间建立一种定时队列,可以在内存中保留消息X秒。只要该定时队列存在,X就不会改变。
理想情况下,它应该是这样的:
tqueue_t *tqueue_new(int seconds);
int tqueue_push(tqueue_t *queue, void *msg);
void *tqueue_pop(tqueue_t *queue);
tqueue_pop()
应该在队列中第一个消息等待X秒后阻塞并返回。
如何最好地实现这一点?也许已经有一些现成的解决方案了吗?
语言:C
操作系统:*nix
此外,该队列应该能够在多线程环境中工作。