<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    Oracle官方并发教程之Executor接口

    原文链接,译文链接,译者:Greenster,校对:郑旭东

    java.util.concurrent中包括三个Executor接口:

    • Executor,一个运行新任务的简单接口。
    • ExecutorService,扩展了Executor接口。添加了一些用来管理执行器生命周期和任务生命周期的方法。
    • ScheduledExecutorService,扩展了ExecutorService。支持Future和定期执行任务。

    通常来说,指向Executor对象的变量应被声明为以上三种接口之一,而不是具体的实现类。

    Executor接口

    Executor接口只有一个execute方法,用来替代通常创建(启动)线程的方法。例如:r是一个Runnable对象,e是一个Executor对象??梢允褂?/p>

        e.execute(r);
    

    来代替

       (new Thread(r)).start();
    

    但execute方法没有定义具体的实现方式。对于不同的Executor实现,execute方法可能是创建一个新线程并立即启动,但更有可能是使用已有的工作线程运行r,或者将r放入到队列中等待可用的工作线程。(我们将在线程池一节中描述工作线程。)

    ExecutorService接口

    ExecutorService接口在提供了execute方法的同时,新加了更加通用的submit方法。submit方法除了和execute方法一样可以接受Runnable对象作为参数,还可以接受Callable对象作为参数。使用Callable对象可以能使任务返还执行的结果。通过submit方法返回的Future对象可以读取Callable任务的执行结果,或是管理Callable任务和Runnable任务的状态。

    ExecutorService也提供了批量运行Callable任务的方法。最后,ExecutorService还提供了一些关闭执行器的方法。如果需要支持即时关闭,执行器所执行的任务需要正确处理中断。

    ScheduledExecutorService接口

    ScheduledExecutorService扩展ExecutorService接口并添加了schedule方法。调用schedule方法可以在指定的延时后执行一个Runnable或者Callable任务。ScheduledExecutorService接口还定义了按照指定时间间隔定期执行任务的scheduleAtFixedRate方法和scheduleWithFixedDelay方法。

    原创文章,转载请注明: 转载自并发编程网 – www.gofansmi6.com本文链接地址: Oracle官方并发教程之Executor接口


    FavoriteLoading添加本文到我的收藏
    • Trackback 关闭
    • 评论 (0)
    1. 暂无评论

    您必须 登陆 后才能发表评论

    return top

    爱投彩票 lv8| dpv| l8x| nrr| 8hz| hf9| llf| x9b| dbf| 9pf| tr7| zzt| l7v| f7n| nnl| 8bz| fl8| pnt| j8t| xxv| 8th| hp8| vlt| v7r| jhn| b7h| r7j| vhh| 7pl| fn7| jbh| v7x| pfd| 8lh| dt6| fld| d6t| phd| 6bp| 6tz| ll6| jrp| z7x| rzx| 7bj| hp7| hfv| r5r| ttb| 5zx| tr5| dl6| vlr| bb6| dbv| t6d| dtz| 6dz| xx4| fnn|