【发布时间】:2016-01-05 14:51:54
【问题描述】:
所以,我有一个循环,我创建了数千个线程来处理我的数据。
我检查并存储线程会降低我的应用程序的速度。
它来自我的循环:
Record r = new Record(id, data, outPath, debug);
//r.start();
threads.add(r);
//id is 4 digits
//data is something like 500 chars long
它会停止我的 for 循环一段时间(一次运行需要一秒钟或更长时间,太多了!)。
仅初始化 > 持续时间:0:00:06.369
将线程添加到 ArrayList > 持续时间:0:00:07.348
问题:
- 存储线程的最佳方式是什么?
- 如何让线程更快?
- 我是否应该创建线程并使用特殊的执行器运行它们,例如一次 10 个,然后是下一个 10 个等等? (如果是,那么如何?)
【问题讨论】:
-
这里的线程引用是什么?
-
给出this 的问题可能是您的机器无法处理那么多线程并且变得不稳定。
-
如果不是,请使用 Executor。而且我相信最好存储 Future 而不是线程引用。不知道这是否会影响性能。
标签: java multithreading