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

  • 相关阅读:
    洛谷——P2018 消息传递
    洛谷——P2827 蚯蚓
    洛谷——P1120 小木棍 [数据加强版]
    洛谷——P1168 中位数
    洛谷——P1850 换教室
    Kali-linux使用Metasploit基础
    Kali-linux使用Metasploitable操作系统
    Kali-linux使用OpenVAS
    Kali-linux使用Nessus
    Kali-linux绘制网络结构图
  • 原文地址:https://www.cnblogs.com/XJJD/p/7079516.html
Copyright © 2011-2022 走看看