Java有效实现Thread

标签 java multithreading groovy

我有一个文件上传功能,用户可以同时上传多个文件,为了获得良好的效果,我使用了线程处理,如下

Thread.start{
  // do file processing 'cause it is a long running process
}

现在的问题是,对于每个文件上传系统都会创建一个新线程,这样会导致系统崩溃和其他问题,所以现在我正在寻找一个解决方案,我可以创建一个 Queue 来存储所有接收到的文件,并一次创建最小数量(比如 5 个)Thread 并进行处理它并再次创建一组线程和进程。

所以我正在调查 GPars , Java Thread and Queue很快但不知道哪种是有效的方法以及现有的好的解决方案是什么

最佳答案

您正在寻找一个线程池,或者 - 用 Ja​​va 术语来说 - 寻找 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/

相关文章:

java - 如何为下面的复杂 jQuery 选择器编写 cssSelector

java - 如何在groovy测试用例中验证java的arraylist的每个条目

java - 获取发送和接收 json 数据的路径变量 Rest spring mvc

java - 如何将不同的主题应用到桌面 swing 软件?

javascript - Web Worker 开销指标

python - args 的语义传递给 python threading.Thread __init__

groovy - 如何打印 Gremlin 管道/遍历结果

java - 正则表达式:删除 Java 中的第二对括号

c# - 其中包含字符串操作的调试语句的最佳实践是什么?

java - Java有自动并行化吗?