The*_*ind 16 java multithreading executor
我的问题是:使用它是否有意义Executors.newFixedThreadPool(1)??
.在两个线程(main + oneAnotherThread)场景中,使用执行程序服务是否有效?是否通过调用new Runnable(){ }
比使用ExecutorService更好地直接创建新线程?在这种情况下使用ExecutorService有什么好处和缺点?
PS:主线程和oneAnotherThread不访问任何公共资源.
我经历过:使用ExecutorService有什么好处?.并且一次只有一个线程!
ass*_*ias 15
使用有意义
Executors.newFixedThreadPool(1)
吗?
Executors.newSingleThreadExecutor()
除了后者不可重新配置(如javadoc中所示)之外,它基本上与a相同,而前者则是将其转换为a ThreadPoolExecutor
.
在两个线程(main + oneAnotherThread)中,使用执行程序服务是否有效?
执行程序服务是一个非常薄的线程包装器,可以显着简化线程生命周期管理.如果您唯一需要的是继续new Thread(runnable).start();
前进,那么就不需要ExecutorService.
在任何大多数现实生活中,监视任务生命周期的可能性(通过返回的Future
s),执行者将在未捕获的异常情况下根据需要重新创建线程的事实,回收线程的性能增益与创建新的等等,使执行器服务成为一个更加强大的解决方案,而且成本很低.
结论:我没有看到使用执行程序服务与线程的任何缺点.
Executors.newSingleThreadExecutor().执行(命令)和新线程(命令).start()之间的区别; 经历了两个选项之间行为的微小差异.
归档时间: |
|
查看次数: |
12459 次 |
最近记录: |