有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    其中一个好处是遗嘱执行人。newSingleThreadExecutor重用线程实例以加速其他作业的启动

  2. # 2 楼答案

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

  3. # 3 楼答案

    逐字书写

    Executors.newSingleThreadExecutor().submit(job);
    

    这是毫无意义的:这只是错误的做法

    new Thread(job).start();
    

    与后者相反,前者将保持线程挂起,直到执行器服务完成

    当您将Executor服务作为实例/类变量保留,并将其重新用于许多提交的任务时,使用Executor服务的优势就出现了。当您使用Executor服务时,它必须正确地shutdown

    更一般地说,将任务提交到executor服务和仅运行任务之间的区别在于实现的并发性。这是否会带来任何好处,这与提交的作业高度相关:它也可能是无用的,甚至是被破坏的(导致数据争用、死锁等)