【文件属性】:
文件名称:msg-pool:多生产者多消费者消息传递池
文件大小:8KB
文件格式:ZIP
更新时间:2024-07-13 11:58:55
C
msg-pool:多生产者/多消费者消息传递池许可证:公共领域网址: : 艾萨克·特纳 2014 年 1 月
快速消息传递
当我们需要等待输入/输出时,高吞吐量消息传递池将无锁池与阻塞互斥体/条件变量混合。 这是一个池而不是一个队列- 消息的传递没有特定的顺序。 主要用于当有多个生产者线程和多个消费者线程时共享任务。 我们不担心延迟,只担心总吞吐率。
特点/限制:
固定大小的池
传递的消息没有关于排序的保证
多个生产者/多个消费者线程
除非池已满或空,否则无锁
例子
MsgPool q;
msgpool_alloc_spinlock(&q, qlen, sizeof(int));
// Reader threads
int read;
while(msgpool_read(&q, &r, NULL)) printf("Got
【文件预览】:
msg-pool-master
----test.c(6KB)
----thread_pause.h(3KB)
----msgpool.h(9KB)
----.gitignore(13B)
----Makefile(380B)
----README.md(3KB)