Java-what';遗嘱执行人有什么了不起的?
在没有Java执行器的情况下,必须为每个可运行任务创建新线程。创建新线程需要线程开销(创建和拆卸),这会增加非执行程序的复杂性和浪费时间 参考代码: 没有Java执行器-Java-what';遗嘱执行人有什么了不起的?,java,executor,Java,Executor,在没有Java执行器的情况下,必须为每个可运行任务创建新线程。创建新线程需要线程开销(创建和拆卸),这会增加非执行程序的复杂性和浪费时间 参考代码: 没有Java执行器- new Thread (aRunnableObject).start (); Executor executor = some Executor factory method; exector.execute (aRunnable); 使用Java执行器- new Thread (aRunnableObject).star
new Thread (aRunnableObject).start ();
Executor executor = some Executor factory method;
exector.execute (aRunnable);
使用Java执行器-
new Thread (aRunnableObject).start ();
Executor executor = some Executor factory method;
exector.execute (aRunnable);
底线是执行者抽象出如何管理线程的底层细节
这是真的吗
谢谢
底线是执行者抽象出如何管理线程的底层细节。这是真的吗
对
它们处理的问题包括创建线程对象、维护线程池、控制正在运行的线程数以及正常/不正常关闭。手工做这些事情不是小事
编辑
这样做可能会影响性能,也可能不会影响性能。。。与完全根据应用程序的精确需求调整的自定义实现相比。但机会在于:
与普通线程相比,执行器有两个优点
执行器更易于使用,因为它们处理低级线程管理。有没有演出热播?我脑子里在想-垃圾收集::手动内存管理:执行器::线程
executor
是一个接口,因此您经过完美调优的自定义实现实际上可以是执行器。然后,如果结果证明没有进行如此完美的调优,您可以轻松地切换实现。:)执行者提供的抽象非常轻量级,从某种意义上说,他们没有做那么多。对于fixedThreadPool,有一个队列和一些等待的线程。如果有工作,他们会做的。但这基本上就是全部,所以这不太可能给你任何性能上的打击。”…所以这不太可能给你任何性能上的打击”-事实上。我甚至可以说,由于“自己滚动”代码中的(潜在)错误,不使用执行器更有可能会影响性能。编写自己的线程池有什么好处?