我有一个call ,但是当我调用LinkedBlockingQueue
并等待任务可用时,CPU 使用率为 100%。我有多个线程使用该方法(每个线程都有自己的变量)。有谁知道为什么会这样?tasks
tasks.take()
tasks.take()
tasks
tasks
变量的定义
private LinkedBlockingQueue<ComputerTask> tasks;
// snip
this.tasks = new LinkedBlockingQueue<ComputerTask>(100);
执行任务的代码
ComputerTask task = tasks.take();
提供新任务的代码
this.tasks.offer(task);
PS 我不知道这是否是我的 Java 版本的问题,因为我还没有在任何其他计算机上测试过它。
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04-413-11M3623)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-413, mixed mode)