rip*_*234 54 java concurrency multithreading executor
执行者看起来像一个干净的抽象.您何时想直接使用Thread而不是依赖更强大的执行程序?
Pab*_*jim 30
为了给出一些历史记录,Executors只是作为Java 1.5中java标准的一部分添加的.因此,在某些方面,Executors可以被视为处理Runnable任务的新的更好的抽象.
有点过度简化了...... - 执行者是正确的线程,所以优先使用它们.
当我需要一些基于拉的消息处理时,我使用Thread.例如,队列是在一个单独的线程中的循环中的take() - en.例如,您将队列包装在昂贵的上下文中 - 比如说JDBC连接,JMS连接,要从单个磁盘处理的文件等等.
在我受到诅咒之前,你有一些情景吗?
编辑:
正如其他人所说,Executor(ExecutorService)接口具有更大的潜力,因为您可以使用它Executors来选择行为:Java 5+中的计划,优先级,缓存等或Java 1.4的juc backport.
执行程序框架具有针对崩溃的可运行文件的保护,并自动重新创建工作线程.在我看来一个缺点,那你必须明确地shutdown()和awaitTermination()他们退出应用程序之前-这是不是在GUI应用程序那么容易.如果你使用有界队列,你需要指定一个RejectedExecutionHandler或新的runnables扔掉.
你可以看看Brian Goetz等人:Java Concurrency in Practice(2006)
| 归档时间: |
|
| 查看次数: |
27303 次 |
| 最近记录: |