首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

tomcat 七 源码分析-10 线程池ThreadPoolExecutor

2012-10-06 
tomcat 7 源码分析-10 线程池ThreadPoolExecutortomcat 7 源码分析-10 线程池ThreadPoolExecutor?try {Soc

tomcat 7 源码分析-10 线程池ThreadPoolExecutor
tomcat 7 源码分析-10 线程池ThreadPoolExecutor

?

tomcat 七 源码分析-10 线程池ThreadPoolExecutor
    try { SocketWrapper<Socket> wrapper = new SocketWrapper<Socket>(socket); wrapper.setKeepAliveLeft(getMaxKeepAliveRequests()); getExecutor().execute(new SocketProcessor(wrapper)); }

    ?事实上tomcat对ThreadPoolExecutor做了一点小小的封装。

    ?

    先来看一个简单的java api——ThreadPoolExecutor的使用

    tomcat 七 源码分析-10 线程池ThreadPoolExecutor
      package com.test.threadpool;import java.util.concurrent.*;public class ThreadpoolTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint minSpareThreads = 10;int maxThreads = 200;LinkedBlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>();ThreadPoolExecutor executor = new ThreadPoolExecutor(minSpareThreads, maxThreads, 60, TimeUnit.SECONDS,workQueue);for (int i = 0; i <=5 ; i++) { //创建6个任务 executor.execute(createTask(i)); } executor.shutdown();} private static Runnable createTask(final int taskID) { return new Runnable() { public void run() { System.out.println("Task" + taskID + "开始"); System.out.println("Hello world"); System.out.println("Task" + taskID + "结束"); } }; }}

      ?所要执行的任务,只要是Runnable,然后交给executor执行,显得很简单。

      tomcat对其封装在package org.apache.tomcat.util.threads中,可以看看

热点排行