A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© liudh1 中级黑马   /  2016-4-24 07:37  /  311 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package liu.dh.thread1;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Demo5_ExecutorService {
/**
  * @param args
  * ExecutorService:线程池,池里的线程代码结束后,并不会死亡,而是再次回到线程池成为空闲状态,
  * 等待下一个对象来使用,jak5之前必须手动实现自己的线程池,从jdk5开始内置线程池.
  * jdk5提供了Executors工厂类来产生线程池,具体方法如下:
  *   static ExecutorService newFixedThreadPool(int nthread);创建一个可重用固定线程数的线程池,
  * 以共享的无界队列方式来运行这些线程。
  *   static ExecutorService newSingleThreadExecutor();
  * 创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
  * 通过submit(...)向线程池添加线程
  * <T> Future<T> submit(Callable<T> task)  提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。         
Future<?> submit(Runnable task) 提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。
<T> Future<T> submit(Runnable task, T result)  提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。
  //通过 Future.get() 获取的结果
   *  void shutdown() 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。
         
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  //创建线程池
   ExecutorService eService = Executors.newFixedThreadPool(2);
   final Object object =new Object();
   //向线程池加入线程,可以使用匿名内部类
  eService.submit(new Thread(){
   
   public void run(){
    /*try {
     Thread.currentThread();
     Thread.sleep(10);
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }*/
    /*while (true) {
     System.out.println("这是第"+"i--"+"张票");
    }
    */
   
    while (true ){
     synchronized (object) {
     System.out.print("黑");
     System.out.print("马");
     System.out.print("程");
     System.out.print("序");
     System.out.print("员");
     System.out.println("\r\n");
     }
    }
    }
   
   
  });
  ///向线程池加入线程,可以使用匿名内部类
  eService.submit(new Thread(){
   public void run(){
    /*while (true) {
     System.out.println("niho");
    } */
   
    while (true) {
     synchronized (object) {
     System.out.print("尚");
     System.out.print("硅");
     System.out.print("谷");
     System.out.print("员");
     System.out.println("\r\n");
    }
   }
    }
   
  });
  eService.shutdown();
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马