线程池的execute实现逻辑: 向线程池提交一个任务,如果线程数不超过核心线程数,就创建线程,否则加入阻塞队列。
这里创建的"线程"是一个包装thread类(通过继承)的类,其中run( ) 是一个循环,不断从阻塞队列中取任务执行
final void runWorker(Worker w) {
    Runnable task = w.firstTask;
    w.firstTask = null; // 首次任务置空
    while ((task != null) || (task = getTask()) != null) {
        try {
            task.run(); // 执行任务
        } catch (RuntimeException ex) {
            handleException(ex); // 处理运行时异常
        }
    }
}

 

posted on 2025-01-02 22:05  towboat  阅读(10)  评论(0)    收藏  举报