你的位置:首页 > Java教程

[Java教程]Java程序设计之线程池应用


  这里简单说一个线程池的小应用,从控制台输入线程访问的线程数量,输出输出工作的线程名,之前先构造一个包含了5条线程的对象。

  代码:

import java.util.Scanner;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Threadd {  public static void main(String[] args) {    // TODO Auto-generated method stub    Scanner s = new Scanner(System.in);    ExecutorService es = Executors.newFixedThreadPool(5);//初始化五条线程,当使用的时候就使用,没有访问就挂起    runn r = new runn();        int i = Integer.parseInt(s.nextLine());//此处从控制台输入工作的线程数量        while(--i>0){      es.execute(r);    }        while(true){      if(es.isTerminated()){        System.out.println("线程任务已经都完成");        break;      }    }    es.shutdown();    try {      Thread.sleep(1000);      if(es.isShutdown()){        System.out.println("线程池已经销毁完毕。");      }    } catch (InterruptedException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }  }}class runn implements Runnable{  @Override  public void run() {    // TODO Auto-generated method stub    System.out.println(Thread.currentThread().getName()+"正在运行");  }  }

  输入:7

  输出:pool-1-thread-1正在运行
     pool-1-thread-3正在运行
     pool-1-thread-2正在运行
     pool-1-thread-4正在运行
     pool-1-thread-2正在运行
     pool-1-thread-5正在运行