java 使用执行器的优点,newSingleThreadExecutor()[复制]

jbose2ul  于 2022-12-25  发布在  Java
关注(0)|答案(3)|浏览(225)
    • 此问题在此处已有答案**:

The difference between Executors.newSingleThreadExecutor().execute(command) and new Thread(command).start();(6个答案)
九年前就关门了。
使用的优势是什么

Executors.newSingleThreadExecutor().submit(job);

job.run();

其中jobRunnable类的示例。

rbpvctlc

rbpvctlc1#

照字面写

Executors.newSingleThreadExecutor().submit(job);

毫无意义:只是用错误的方式

new Thread(job).start();

与后者相反,前者会让线程挂起,直到Executor Service完成。
使用Executor服务的好处是当你把它作为一个示例/类变量来使用,并且在很多提交的任务中重用它。当你使用完它的时候,Executor服务必须是正确的shutdown
更一般地说,将任务提交给执行器服务和只运行任务之间的区别在于所实现的并发性。这是否会带来任何优势,取决于所提交的作业:它也可能是无用的或者甚至是损坏的(导致数据竞争、死锁等)。

jv4diomz

jv4diomz2#

区别与new Thread(job).start()job.run()相同。当您提交要执行的作业时,作业将在执行器的一个可用线程中运行。调用job.run()与任何其他方法调用一样,不是在单独的线程中运行,而是在调用线程上运行。

t5fffqht

t5fffqht3#

优点之一是Executors.newSingleThreadExecutor重用Thread示例来加快其他作业的启动。

相关问题