回答編集履歴

1

追記

2018/02/08 14:00

投稿

toki_td
toki_td

スコア2850

answer CHANGED
@@ -2,4 +2,4 @@
2
2
  単純にスレッドになかなかCPUが割り当てられないタイミングがあって、writerに割り当てられなかったらreaderはキューを全部処理しきって待つだけだけど、readerに割り当てられなかったらwriterはガンガンキューに突っ込んでいくのでメモリが足りなくなるんだと思います。
3
3
  CPUが割り当てられないタイミングがあるのは別段不思議ではないです。
4
4
 
5
- キューの代わりに固定サイズのリングバッファを作って、writer側も空きバッファが無かったら(readerが処理しなかったら)空きができるまで待機するようにしたらどうでしょうか?
5
+ キューのデータ数が一定数を超えたら処理されるまでwriterを待機させるとか、キューの代わりに固定サイズのリングバッファを作って、writer側も空きバッファが無かったら(readerが処理しなかったら)空きができるまで待機するようにしたらどうでしょうか?