国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java游戲起步:(一)線程與線程池

2019-11-17 06:33:52
字體:
來源:轉載
供稿:網友

任何游戲都至少需要運行兩個線程,主線程和GUI線程
而線程池是一個治理運行線程的有用工具,下面的代碼示范了一個線程池的實現方法~~
************************************************
(ThreadPool.java)
import java.util.LinkedList;

/**
    線程池是一組線程,限制執行任務的線程數
*/
public class ThreadPool extends ThreadGroup {

    PRivate boolean isAlive;
    private LinkedList taskQueue;
    private int threadID;
    private static int threadPoolID;

    /**
        創建新的線程池,numThreads是池中的線程數
    */
    public ThreadPool(int numThreads) {
        super("ThreadPool-" + (threadPoolID++));
        setDaemon(true);

        isAlive = true;

        taskQueue = new LinkedList();
        for (int i=0; i<numThreads; i++) {
            new PooledThread().start();
        }
    }
    /**
        請求新任務。人物在池中下一空閑線程中運行,任務按收到的順序執行
    */
    public synchronized void runTask(Runnable task) {
        if (!isAlive) {
            throw new IllegalStateException();//線程被關則拋出IllegalStateException異常
        }
        if (task != null) {
            taskQueue.add(task);
            notify();
        }

    }


    protected synchronized Runnable getTask()
        throws InterruptedException
    {
        while (taskQueue.size() == 0) {
            if (!isAlive) {
                return null;
            }
            wait();
        }
        return (Runnable)taskQueue.removeFirst();
    }


    /**
        關閉線程池,所有線程停止,不再執行任務


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛山市| 二连浩特市| 饶河县| 德州市| 丰城市| 虹口区| 垣曲县| 宜章县| 长葛市| 团风县| 徐州市| 山西省| 建平县| 太湖县| 留坝县| 高邮市| 大理市| 监利县| 西华县| 五大连池市| 文安县| 塔城市| 阿拉善右旗| 江油市| 乐东| 博兴县| 汕尾市| 宁强县| 虞城县| 资阳市| 诸暨市| 肃南| 治多县| 崇明县| 萨迦县| 台湾省| 和田市| 绥江县| 偏关县| 明光市| 合江县|