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());
    }
    });
    }
    }
    }

  • 相关阅读:
    快速了解MongoDB
    如何在 Ubuntu 上安装 MongoDB
    Python操作MongoDB文档数据库
    C# Convert.ToDouble 在不同的区域下的问题
    Visual Studio 调试C#程序时,提示“无法加载程序集****.XmlSerializers.dll",文件找不到 的问题
    C# 调用打印机打印文件
    C# 获取所有可用的打印机
    记录一次排查使用HttpWebRequest发送请求的发生“基础连接已关闭:接收时发生错误”异常问题的过程
    SQL 分组后只获取每组的一条数据
    记录一次使用NPOI遇到的问题
  • 原文地址:https://www.cnblogs.com/XJJD/p/7079516.html
Copyright © 2011-2022 走看看