zoukankan      html  css  js  c++  java
  • 四种线程池的使用

    第一种:NewCachedThreadPool

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

    public class NewCachedThreadPool {
    public static void main(String[] args) {
    ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
    for (int i = 0; i < 1000; i++) {
    final int index = i;
    cachedThreadPool.execute(new Runnable() {
    public void run() {
    System.out.println(index);
    System.out.println(Thread.currentThread().getName());
    }
    });
    }
    }
    }

    第二种:NewFixedThreadPool 

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

    public class NewFixedThreadPool {
    public static void main(String[] args) {
    ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
    for (int i = 0; i < 1000; i++) {
    final int index = i;
    System.out.println(i);
    fixedThreadPool.execute(new Runnable() {
    public void run() {
    System.out.println(Thread.currentThread().getName());
    }
    });
    }
    }
    }

    第三种:NewScheduledThreadPool

    import java.util.concurrent.Executors;
    import java.util.concurrent.ScheduledExecutorService;
    import java.util.concurrent.TimeUnit;

    public class NewScheduledThreadPool {

    //表示延迟1秒执行
    /*public static void main(String[] args) {
    //括号后面的参数是线程的核心数量
    ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(10);
    for (int i = 0; i < 100; i++) {
    scheduledThreadPool.schedule(new Runnable() {
    public void run() {
    System.out.println("delay 1 seconds");
    System.out.println(Thread.currentThread().getName());
    }
    }, 1, TimeUnit.SECONDS);
    }
    }*/
    //表示延迟1秒后每3秒执行一次
    public static void main(String[] args) {
    ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
    scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
    public void run() {
    System.out.println("delay 1 seconds, and excute every 3 seconds");
    System.out.println(Thread.currentThread().getName());
    }
    }, 1, 1, TimeUnit.SECONDS);
    }
    }

    第四种:NewSingleThreadExecutor 

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    public class NewSingleThreadExecutor {
    public static void main(String[] args) {
    ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
    for (int i = 0; i < 10; i++) {
    final int index = i;
    singleThreadExecutor.execute(new Runnable() {
    public void run() {
    System.out.println(index);
    System.out.println(Thread.currentThread().getName());
    }
    });
    }
    }
    }

  • 相关阅读:
    Atitit 教育与培训学校 的计划策划 v4 qc18
    Atitit 设计模式的本质思考】
    Atitit.软件开发的几大规则,法则,与原则Principle v3
    Atitit 深入理解抽象类与接口 attilax总结
    titit. 深入理解 内聚( Cohesion)原理and  attilax大总结
    轻量级web富文本框——wangEditor使用手册(1)——基本应用
    重构wangEditor(web富文本编辑器),欢迎指正!
    js便签笔记(14)——用nodejs搭建最简单、轻量化的http server
    请用fontAwesome代替网页icon小图标
    javascript实现代码高亮-wangHighLighter.js
  • 原文地址:https://www.cnblogs.com/XJJD/p/7079516.html
Copyright © 2011-2022 走看看