在我的 java 代码中,我怀疑 java.util.ArrayDeque 的大小正在影响性能,但我想在这里确认是否是这种情况。
while (!otherClass.getDeque().isEmpty()){
Trajectory t1 = otherClass.getDeque.remove();
Runnable tr1 = new TrajectoryThread();
Thread thread1 = new Thread(tr1);
thread1.start();
if (!otherClass.getDeque().isEmpty()){
Trajectory t2 = otherClass.getDeque.remove();
Runnable tr2 = new TrajectoryThread();
Thread thread2 = new Thread(tr2);
thread2.start();
在我的代码中,如果双端队列不为空,我将删除一个轨迹对象,并在新线程上启动一个模拟,直到 40 个模拟同时运行。在每次模拟结束时,有可能将更多轨迹添加到队列中。如果在所有模拟完成后仍有轨迹留在队列中,则该过程会自行重复。
我使用的操作是 remove()、add()、isEmpty(),以及从另一个类中获取 Deque。在计时每次迭代时,我发现对于 4421 个对象的 Deque 大小,它需要 7756 毫秒。而对于 103 个对象的 Deque 大小,则需要 43 毫秒。