黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java多線程編程概述
Java多線程的安全問題
Java多線程同步
Java多線程間的通信
Java線程Lock
Java多線程管理
保障線程安全的設計技術
Java鎖的優化及注意事項
Java多線程集合
【Java多線程】單例模式與多線程

Java線程池擴展

有時需要對線程池進行擴展,如在監控每個任務的開始和結束時間,或者自定義一些其他增強的功能。

ThreadPoolExecutor線程池提供了兩個方法:

● protected void afterExecute(Runnable r, Throwable t)

● protected void beforeExecute(Thread t, Runnable r)

在線程池執行某個任務前會調用beforeExecute()方法,在任務結束后(任務異常退出)會執行afterExecute()方法。

查看ThreadPoolExecutor源碼,在該類中定義了一個內部類Worker, ThreadPoolExecutor線程池中的工作線程就是Worker類的實例, Worker實例在執行時會調用beforeExecute()與 afterExecute()方法。

package com.wkcto.threadpool;

import com.wkcto.produerstack.MyStack;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * 擴展線程池
 */
public class Test06 {
    //定義任務類
    private static class  MyTask implements  Runnable{
         String name;

        public MyTask(String name) {
            this.name = name;
        }

        @Override
        public void run() {
            System.out.println(name + "任務正在被線程 " + Thread.currentThread().getId() + " 執行");
            try {
                Thread.sleep(1000);     //模擬任務執行時長
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        //定義擴展線程池, 可以定義線程池類繼承ThreadPoolExecutor,在子類中重寫beforeExecute()/afterExecute()方法
        //也可以直接使用ThreadPoolExecutor的內部類
        ExecutorService executorService = new ThreadPoolExecutor(5, 5, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>() ){
            //在內部類中重寫任務開始方法
            @Override
            protected void beforeExecute(Thread t, Runnable r) {
                System.out.println(t.getId() + "線程準備執行任務: " + ((MyTask)r).name);
            }

            @Override
            protected void afterExecute(Runnable r, Throwable t) {
                System.out.println( ((MyTask)r).name + "任務執行完畢");
            }

            @Override
            protected void terminated() {
                System.out.println("線程池退出");
            }
        };

        //向線程池中添加任務
        for (int i = 0; i < 5; i++) {
            MyTask task = new MyTask("task-" + i);
            executorService.execute(task);
        }

        //關閉線程池
        executorService.shutdown();     //關閉線程池僅僅是說線程池不再接收新的任務 , 線程池中已接收的任務正常執行完畢
    }
}

 

全部教程
主站蜘蛛池模板: 伊人91在线 | 午夜影院黄色 | 精品欧美一区二区三区精品久久 | 国产女人伦码一区二区三区不卡 | 91视频 88av | 亚洲视频在线观看免费视频 | 日本xxxxx在线观看 | 日本三级视频网站 | 国产午夜一区二区在线观看 | 午夜影院伦理 | 精品女同一区二区三区在线观看 | 五月月色开心婷婷久久合 | 中国又粗又大又爽的毛片 | 老司机成人午夜精品福利视频 | 亚洲欧美久久婷婷爱综合一区天堂 | 久久狠狠色狠狠色综合 | 中文字幕日韩一区二区三区不卡 | 精品一区二区在线欧美日韩 | 永久黄网站色视频免费观看99 | 国产一区日韩二区欧美三区 | 欧美亚洲一级片 | 1024日本 | 亚洲激情在线 | 中文字幕国产亚洲 | 中国毛片免费看 | 在线观看欧洲成人免费视频 | 麻豆一区二区三区在线观看 | 久久精品国产精品亚洲综合 | 欧美呦交 | 在线看欧美成人中文字幕视频 | 无遮挡h黄漫动漫在线观看 无遮挡h纯内动漫在线观看 | 综合自拍亚洲综合图不卡区 | 美女又美女又黄又免费网站 | 国产精品午夜在线播放a | 又猛又黄又爽无遮挡的视频网站 | 欧美日韩午夜视频 | 毛片录像 | 亚洲视频精品在线观看 | 免费观看的成年网址 | 国产偷倩视频 | 久久婷婷色 |