当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>JAVA网络编程

Java代码构建一个线程池

  本示例程序由三个类构成,第一个是TestThreadPool类,它是一个测试程序,用来模拟客户端的请求,当你运行它时,系统首先会显示线程池的初始化信息,然后提示你从键盘上输入字符串,并按下回车键,这时你会发现屏幕上显示信息,告诉你某个线程正在处理你的请求,如果你快速地输入一行行字符串,那么你会发现线程池中不断有线程被唤醒,来处理你的请求,在本例中,我创建了一个拥有10个线程的线程池,如果线程池中没有可用线程了,系统会提示你相应的警告信息,但如果你稍等片刻,那你会发现屏幕上会陆陆续续提示有线程进入了睡眠状态,这时你又可以发送新的请求了。

  第二个类是ThreadPoolManager类,顾名思义,它是一个用于管理线程池的类,它的主要职责是初始化线程池,并为客户端的请求分配不同的线程来进行处理,如果线程池满了,它会对你发出警告信息。

  最后一个类是SimpleThread类,它是Thread类的一个子类,它才真正对客户端的请求进行处理,SimpleThread在示例程序初始化时都处于睡眠状态,但如果它接受到了ThreadPoolManager类发过来的调度信息,则会将自己唤醒,并对请求进行处理。

  首先我们来看一下TestThreadPool类的源码:

  //TestThreadPool.java

  1 import java.io.*;

  2

  3

  4 public class TestThreadPool

  5 {

  6 public static void main(String[] args)

  7 {

  8 try{

  9 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

  10 String s;

  11 ThreadPoolManager manager = new ThreadPoolManager(10);

  12 while((s = br.readLine()) != null)

  13 {

  14 manager.process(s);

  15 }

  16 }catch(IOException e){}

  17 }

  18 }

 

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接