java实现线程池的几种方法

2025-10-28 08:49:04

1、创建数量为三的线程池并打印:

public class Demo {

public static void main(String[] args) {  

  ExecutorService tPool = Executors.newFixedThreadPool(3);  

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

   final int index = i;  

   

java实现线程池的几种方法

2、//extends  Thread  实现runable接口

  tPool.execute(new Runnable() {  

    public void run() {  

     try {  

      System.out.println(index);  

      Thread.sleep(2000);  

     } catch (InterruptedException e) {  

      e.printStackTrace();  

     }  

    }  

   });  

  }  

}  

}

java实现线程池的几种方法

3、已上的执行顺序,首先执行0,1,2,但是顺序是任意的,暂停2秒钟,执行3,4,5,顺序任意的,6,7,8顺序任意的,9最后执行;

java实现线程池的几种方法

4、 public static void main(String[] args) {  

  ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);  

  scheduledThreadPool.schedule(new Runnable() {  

   public void run() {  

    System.out.println("delay 3 seconds");  

   }  

  }, 3, TimeUnit.SECONDS);  

 }  

定长线程池,3秒后执行

java实现线程池的几种方法

5、创建线程,实现runnable接口,此方法比较常用,class只能单继承,如果继承thread就无法继承其他的类了,但可以多实现,

public class Single {  

    public static void main(String[] args){  

        ExecutorService ex = Executors.newSingleThreadExecutor();  

      

java实现线程池的几种方法

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

            runnable rn = new runnable();  

            ex.execute(rn);  

        }  

        ex.shutdown();  

    }  

}  

class runnable implements Runnable{  

    public void run(){  

        System.out.println(Thread.currentThread().getName());  

    }  

}  

java实现线程池的几种方法

7、一般情况下会使用Executors创建线程池,目前不推荐,线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor方式,

这样的处理方式可以更加明确线程池的运行规则,规避资源耗尽的风险。

java实现线程池的几种方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢