在我的应用程序中,数据生成速度(存储在并发链接队列中)比我单线程可以消耗的速度要大。
我决定从创建4个线程来使用数据开始,以防止我的应用程序出现“内存不足异常”。
问题 :
最佳答案
我认为您不应该迭代,而是从队列中创建每个轮询数据的4个线程,以便将轮询数据删除或换句话说,将其消耗掉
// your queue
ConcurrentLinkedQueue concurrentLinkedQueue = new ConcurrentLinkedQueue();
// create 4 Threads
for (int i = 0; i < 4; i++) {
new Thread(() -> {
while (!concurrentLinkedQueue.isEmpty()) {
// consume element
var element = concurrentLinkedQueue.poll();
// do something with element
// here
}
}).start();
}