a****n 发帖数: 230 | 1 我现在用Dequeue做buffer
有两个thread,一个插入,一个Pop out,要求插入要快
发现主要是两个thread之间等待对Buffer的ownership等比较久
不知道大家有什么好办法,谢谢。。。。 |
i******r 发帖数: 323 | 2 如果事先知道buffer的最大容量,自己用一个一维数组实现?
比如知道最多100个东西在buffer里
Type* buffer[101];
int front = 0;
int back = 0;
要插入就buffer[back] = &obj; back=(back+1)%101;
要pop out(?)就pObj = buffer[front]; front=(front+1)%101;
如果front==back就是empty buffer
【在 a****n 的大作中提到】 : 我现在用Dequeue做buffer : 有两个thread,一个插入,一个Pop out,要求插入要快 : 发现主要是两个thread之间等待对Buffer的ownership等比较久 : 不知道大家有什么好办法,谢谢。。。。
|
i******r 发帖数: 323 | 3 插入的话是两头都可以插入,还是只有一个方向插入?
Pop out呢?
【在 a****n 的大作中提到】 : 我现在用Dequeue做buffer : 有两个thread,一个插入,一个Pop out,要求插入要快 : 发现主要是两个thread之间等待对Buffer的ownership等比较久 : 不知道大家有什么好办法,谢谢。。。。
|
a****n 发帖数: 230 | 4 插入从尾插,Pop从头pop out
不知道不用thread safe可不可以
【在 i******r 的大作中提到】 : 插入的话是两头都可以插入,还是只有一个方向插入? : Pop out呢?
|
i******r 发帖数: 323 | 5 如果是这样可以用queue代替dequeue? 不thread safe估计不行
【在 a****n 的大作中提到】 : 插入从尾插,Pop从头pop out : 不知道不用thread safe可不可以
|
D*******a 发帖数: 3688 | 6 能不能只插入object的指针
而且,感觉你这种情况用list比deque快
【在 a****n 的大作中提到】 : 我现在用Dequeue做buffer : 有两个thread,一个插入,一个Pop out,要求插入要快 : 发现主要是两个thread之间等待对Buffer的ownership等比较久 : 不知道大家有什么好办法,谢谢。。。。
|
k**f 发帖数: 372 | 7
boost has a circular buffer container since version 1.35, maybe you want to
take a look.
【在 a****n 的大作中提到】 : 插入从尾插,Pop从头pop out : 不知道不用thread safe可不可以
|