免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ExecutorService常用方法和newFixedThreadPool創(chuàng)建固定大小的線程池 | IT宅.com
1、ExecutorService:

是一個(gè)接口,繼承了Executor:

public interface ExecutorService extends Executor {}
2、Executor:

而Executor亦是一個(gè)接口,該接口只包含了一個(gè)方法:

void execute(Runnable command);
3、Executors:

該類是一個(gè)輔助類,此包中所定義的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 類的工廠和實(shí)用方法。

此類支持以下各種方法:

創(chuàng)建并返回設(shè)置有常用配置字符串的 ExecutorService 的方法。
創(chuàng)建并返回設(shè)置有常用配置字符串的 ScheduledExecutorService 的方法。
創(chuàng)建并返回“包裝的”ExecutorService 方法,它通過使特定于實(shí)現(xiàn)的方法不可訪問來禁用重新配置。
創(chuàng)建并返回 ThreadFactory 的方法,它可將新創(chuàng)建的線程設(shè)置為已知的狀態(tài)。
創(chuàng)建并返回非閉包形式的 Callable 的方法,這樣可將其用于需要 Callable 的執(zhí)行方法中。
4、創(chuàng)建ExecutorService的方法:
newFixedThreadPool()

創(chuàng)建一個(gè)可重用固定線程數(shù)的線程池,以共享的無界隊(duì)列方式來運(yùn)行這些線程。

5、ExecutorService的方法:

shutdown

void shutdown()
啟動(dòng)一次順序關(guān)閉,執(zhí)行以前提交的任務(wù),但不接受新任務(wù)。如果已經(jīng)關(guān)閉,則調(diào)用沒有其他作用。 

拋出:
SecurityException - 如果安全管理器存在并且關(guān)閉,此 ExecutorService 可能操作某些不允許調(diào)用者修改的線程(因?yàn)樗鼪]有保持 RuntimePermission("modifyThread")),或者安全管理器的 checkAccess 方法拒絕訪問。

啟動(dòng)一次順序關(guān)閉,執(zhí)行以前提交的任務(wù),但不接受新任務(wù)。如果已經(jīng)關(guān)閉,則調(diào)用沒有其他作用。

awaitTermination

boolean awaitTermination(long timeout,                         TimeUnit unit)                         throws InterruptedException
請(qǐng)求關(guān)閉、發(fā)生超時(shí)或者當(dāng)前線程中斷,無論哪一個(gè)首先發(fā)生之后,都將導(dǎo)致阻塞,直到所有任務(wù)完成執(zhí)行。 

參數(shù):
timeout - 最長(zhǎng)等待時(shí)間
unit - timeout 參數(shù)的時(shí)間單位
返回:
如果此執(zhí)行程序終止,則返回 true;如果終止前超時(shí)期滿,則返回 false
拋出:
InterruptedException - 如果等待時(shí)發(fā)生中斷

請(qǐng)求關(guān)閉、發(fā)生超時(shí)或者當(dāng)前線程中斷,無論哪一個(gè)首先發(fā)生之后,都將導(dǎo)致阻塞,直到所有任務(wù)完成執(zhí)行。既是等待所有子線程執(zhí)行結(jié)束。

execute

void execute(Runnable command)
在未來某個(gè)時(shí)間執(zhí)行給定的命令。該命令可能在新的線程、已入池的線程或者正調(diào)用的線程中執(zhí)行,這由 Executor實(shí)現(xiàn)決定。 

參數(shù):
command - 可運(yùn)行的任務(wù)
拋出:
RejectedExecutionException - 如果不能接受執(zhí)行此任務(wù)。
NullPointerException - 如果命令為 null

在未來某個(gè)時(shí)間執(zhí)行給定的命令。該命令可能在新的線程、已入池的線程或者正調(diào)用的線程中執(zhí)行,這由 Executor 實(shí)現(xiàn)決定。

submit

Future<?> submit(Runnable task)
提交一個(gè) Runnable 任務(wù)用于執(zhí)行,并返回一個(gè)表示該任務(wù)的 Future。該 Future 的 get 方法在成功 完成時(shí)將會(huì)返回 null。 

參數(shù):
task - 要提交的任務(wù)
返回:
表示任務(wù)等待完成的 Future
拋出:
RejectedExecutionException - 如果任務(wù)無法安排執(zhí)行
NullPointerException - 如果該任務(wù)為 null

提交一個(gè) Runnable 任務(wù)用于執(zhí)行,并返回一個(gè)表示該任務(wù)的 Future。該 Future 的 get 方法在成功 完成時(shí)將會(huì)返回 null。

6、下面是相關(guān)的使用例子:
public class ExecutorServiceTest {    public static void main(String[] args) throws IOException, InterruptedException {        // 創(chuàng)建一個(gè)固定大小的線程池        ExecutorService service = Executors.newFixedThreadPool(3);        for (int i = 0; i < 10; i++) {            System.out.println("創(chuàng)建線程" + i);            Runnable run = new Runnable() {                @Override                public void run() {                    System.out.println("啟動(dòng)線程");                }            };            // 在未來某個(gè)時(shí)間執(zhí)行給定的命令            service.execute(run);        }        // 關(guān)閉啟動(dòng)線程        service.shutdown();        // 等待子線程結(jié)束,再繼續(xù)執(zhí)行下面的代碼        service.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);        System.out.println("all thread complete");    }}

可以發(fā)現(xiàn)線程被循環(huán)創(chuàng)建,但是啟動(dòng)線程卻不是連續(xù)的,而是由ExecutorService決定的。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java線程池
Java并發(fā)編程(19):并發(fā)新特性
java多線程系列:Executors框架
Java(Android)線程池
Java:Java程序猿必會(huì)的四種線程池
Java線程(六):線程池
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服