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

  • 相关阅读:
    四叉树空间索引原理及其实现
    深入理解空间搜索算法 ——数百万数据中的瞬时搜索
    空间索引
    Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题
    Visual studio 2017 中的Javascript智能提示与调试
    EasyUI Tooltip 提示框
    java编程中的断言工具类(org.springframework.util.Assert)
    Guava学习笔记:Google Guava 类库简介
    Jquery autocomplete插件
    easyui-textbox
  • 原文地址:https://www.cnblogs.com/XJJD/p/7079516.html
Copyright © 2011-2022 走看看