java中的线程池
java中的线程池
寞夏者 发表于10个月前
java中的线程池
  • 发表于 10个月前
  • 阅读 10
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: java中如何需要一个线程,那么久创建一个线程。如何需要n个是不是要创建n个线程。如何是这样的话,内存会消耗的很快,浪费了资源。java中有线程池这一概念,好比接待顾客一样,一个接待员可以接待好多个顾客,当没有顾客的时候,那么他们就会休息。线程池也是一样的概念,如何创建了好多个线程,如何要使用的话那么生产,如何不使用的话就回收。并且控制在一定的范围之内,有利益节约资源。

    创建线程池有几种方式分别为:

  • newFixedThreadPool(int poolSize)
    • 创建一个固定的长度的线程池,每次提交任务的时候会创建一个新的线程,直到线程池最大的范围。自动回收哪些空闲的线程,如何发生异常或者结束了,线程池会补充一个新线程
  • newCachedThreadPool()
    • 创建一个可缓存的线程池,当线程池线程超过处理请求的时候,将自定回收线程。而当需求添加的时候,可以自动添加新的线程。线程池的规模不存在限制
  • newSingleThreadExecutor()
    • 一个单线程的Executor,它创建单个工作线程来执行任务。如何改线程异常结束了,会创建一个新的线程来替补结束的线程继续工作。它的特点是能依照列队中顺序来串行执行任务
  • newScheduledThreadPool(int poolSize)
    •  创建一个固定长度的线程,而且一延迟或定时的方式来执行任务

ExecutorService threadPool= Executors.newFixedThreadPool(5);

        for(int j=0;j<10;j++){

            final int index=j;

        threadPool.execute(new Runnable(){

            @Override

            public void run() {

                for(int i=0;i<5;i++){

                    System.out.println(Thread.currentThread().getName()+"运行次数"+i+"线程数"+index);

                }

         }});

共有 人打赏支持
粉丝 3
博文 17
码字总数 4004
×
寞夏者
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: