本文小編為大家詳細(xì)介紹“java的Worker類如何用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“java的Worker類如何用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
在當(dāng)涂等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,當(dāng)涂網(wǎng)站建設(shè)費用合理。
說明
1、Worker是ThreadPoolexecutor的內(nèi)部類,主要用于維持線程執(zhí)行任務(wù)的中斷控制狀態(tài)。
2、在實現(xiàn)Runnable接口的同時繼承AQS,實現(xiàn)Runnable接口意味著Worker是線程。
實例
private final class Worker extends AbstractQueuedSynchronizer implements Runnable{ /** * This class will never be serialized, but we provide a * serialVersionUID to suppress a javac warning. */ private static final long serialVersionUID = 6138294804551838833L; /** Thread this worker is running in. Null if factory fails. */ // 執(zhí)行任務(wù)的線程 final Thread thread; /** Initial task to run. Possibly null. */ // 執(zhí)行的任務(wù) Runnable firstTask; /** Per-thread task counter */ volatile long completedTasks; /** * Creates with given first task and thread from ThreadFactory. * @param firstTask the first task (null if none) */ Worker(Runnable firstTask) { // 新建線程的時候,設(shè)置state -1 是為了防止線程還未執(zhí)行時(線程只有在執(zhí)行的時候才會被中斷),就被 // 其它線程顯式調(diào)用shutdown方法中斷了,因為中斷是要判斷state大于等于0才會中斷 setState(-1); this.firstTask = firstTask; // 新建了一個線程 this.thread = getThreadFactory().newThread(this); } /** Delegates main run loop to outer runWorker */ public void run() { runWorker(this); }
讀到這里,這篇“java的Worker類如何用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。