我有一个文件上传
功能,用户可以同时上传多个文件,为了获得良好的效果,我使用了线程处理
,如下
Thread.start{
// do file processing 'cause it is a long running process
}
现在的问题是,对于每个文件上传系统
都会创建一个新线程
,这样会导致系统崩溃和其他问题,所以现在我正在寻找一个解决方案,我可以创建一个 Queue
来存储所有接收到的文件,并一次创建最小数量(比如 5 个)
的 Thread
并进行处理它并再次创建一组线程
和进程。
所以我正在调查 GPars , Java Thread and Queue很快但不知道哪种是有效的方法以及现有的好的解决方案是什么
最佳答案
您正在寻找一个线程池,或者 - 用 Java 术语来说 - 寻找 Executor
:
Executor executor = anExecutor();
executor.execute(aRunnable());
方法anExecutor
应该返回一个新的Executor
实例:
Executor anExecutor() {
return Executors.newFixedThreadPool(42); // just an example ...
}
关于Java有效实现Thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26587099/