admin 管理员组文章数量: 887053
2024年1月18日发(作者:objective findings)
bool IsEmpty() { return tail == head; } bool Push(DataType data) { if (IsFull()) return false; datas[tail] = data; tail = (tail + 1) % Length; return true; } bool Pop(DataType& data) { if (IsEmpty()) return false; data = datas[head]; head = (head + 1) % Length; return true; } int Size() { if (tail >= head) return tail - head; else return tail + Length - head; }};clock_t start = 0;int b = 0;mutex mt;bool isFinish = false;RingBuffer
template
{private: DataType datas[Length]; int head = 0; int tail = 0;public: bool IsFull() { return (tail + 1) % Length == head; } bool IsEmpty() { return tail == head; } bool Push(DataType data) { if (IsFull()) return false; datas[tail] = data; tail = (tail + 1) % Length; return true; } bool Pop(DataType& data) { if (IsEmpty()) return false; data = datas[head]; head = (head + 1) % Length; return true; } int Size() { if (tail >= head) return tail - head; else return tail + Length - head; }};clock_t start = 0;int b = 0;mutex mt;bool isFinish = false;RingBuffer
本文标签: 线程
版权声明:本文标题:C++多线程的生产者消费者问题:Queue(队列)和环形缓存(RingBuffer)的效率 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705560561h489994.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论