在没有Java Executors的生活中,必须为每个Runnable任务创建新线程.创建新线程需要线程开销(创建和拆除),这增加了复杂性并浪费了非Executor程序的时间.
参考代码:
没有Java执行器 -
new Thread (aRunnableObject).start ();
Run Code Online (Sandbox Code Playgroud)
使用Java Executor -
Executor executor = some Executor factory method;
exector.execute (aRunnable);
Run Code Online (Sandbox Code Playgroud)
底线是Executors抽象出如何管理线程的低级细节.
真的吗?
谢谢.
Ste*_*n C 11
底线是Executors抽象出如何管理线程的低级细节.真的吗?
是.
它们处理诸如创建线程对象,维护线程池,控制正在运行的线程数以及优雅/更少正常关闭等问题.手工完成这些事情并非易事.
编辑
这样做可能会或可能不会有性能影响......与完全根据应用程序的精确需求进行调整的自定义实现相比.但机会是:
此外,如果存在需要解决的问题,Executor支持类允许您简单地调整各种参数(例如线程池大小).我没有看到使用Executors,无论是哪种方式,垃圾收集开销都会受到严重影响.
作为一般规则,您应该专注于简单而强大地编写应用程序(例如,使用高级并发支持类),并且只在以下情况下担心性能:
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |