线程池

/**

  • 线程池:

  • 1.创建线程池(ExecutorService)

  •    真正的线程池接口:java.util.concurrent.ExecutorService.
    
  •    Runnable形式。
    
  • 2.创建线程池的步骤:

  •   1.创建一个线程池。
    
  •   2.通过Executors下的一个静态方法newFixedThreadPool(int nums),创建一个固定大小的线程池。
    
  •   3.加入一些线程任务对象,Runnable和Callable比较适合做线程池。
    
  •   4.把线程任务对象,Runnable的实例对象,存储到线程池中.
    
  • 小结:

  •  1.可以通过newFixedThreadpool创建一个大小的固定的线程池。
    
  •  2.可以使用Runnable的实例对象,提交到线程池。
    
  •  3.pools.submit(Runnable target)提交到线程任务对象,线程池会自动创建线程,并且自动启动线程对象。
    
  •  4.线程池如果已经满了,不会创建新的线程,回复用之前的线程跑一次,!!
    
  • */
    public class LambdaDemo03 {

    public static void main(String[] args) {
    //1.创建一个线程池
    //2.通过Executors下的一个静态方法,newFixedThreadPool(int nums),创建一个大小固定的线程池。
    ExecutorService pools= Executors.newFixedThreadPool(3);
    //3.创建线程任务对象(Runnable对象)
    Runnable Target=new Runnable(){

         @Override
         public void run() {
             for (int i = 0; i <3 ; i++) {
                 System.out.println(Thread.currentThread().getName()+"  "+i);
             }
    
         }
     };
    
     //4.把线程任务对象,Runnable的实例对象,存储到线程池中。
     //  加入线程池任务对象时,线程池会自动创建线程,并且自动启动线程.
    
     pools.submit(Target);
     pools.submit(Target);
     pools.submit(Target);
     //第四次加入线程任务,不会再创建新的线程,
     //因为线程池已经满了,这次会复用某个线程跑一次,这就是线程复用。
     pools.submit(Target);
    
     //5.手工关闭线程池,
     //等待线程池中的当前线程认为女巫全部执行完毕以后才会结束线程池。
     //pools.shutdown();
    
     //立即关闭,不管线程池是否执行完毕。
     pools.shutdownNow();
    

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值