zoukankan      html  css  js  c++  java
  • java 多线程 day09 线程池

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.TimeUnit;
    /**
    * Created by chengtao on 17/12/4.
    *
    *
    * 线程池类:
    * java.util.concurrent.Executors
    * 常用的方法
    * newFixedThreadPool(int nThreads) 创建线程数固定的线程池。
    * newCachedThreadPool() 创建线程数不固定的线程池(缓存线程池,线程数随着任务数的变换而变化)。
    * newSingleThreadExecutor(int nThreads) 创建单一线程池,唯一的线程死掉以后,会自动创建一个线程池。
    * newScheduledThreadPool() 创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。
    */
    public class Thread0901_ThreadPool {

    public static void main(String[] args) {
    //ExecutorService threadPool = Executors.newFixedThreadPool(3);
    //ExecutorService threadPool = Executors.newCachedThreadPool();
    ExecutorService threadPool = Executors.newSingleThreadExecutor();
    for(int i=1;i<=10;i++){
    final int task = i;
    threadPool.execute(new Runnable(){
    public void run() {
    for(int j=1;j<=10;j++){
    try {
    Thread.sleep(20);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    System.out.println(Thread.currentThread().getName() + " is looping of " + j + " for task of " + task);
    }
    }
    });
    }
    System.out.println("all of 10 tasks have committed! ");
    //threadPool.shutdownNow(); 试图停止所有正在执行的活动任务,暂停处理正在等待的任务,并返回等待执行的任务列表。
    //threadPool.shutdown; 启动一次顺序关闭,执行以前提交的任务,但不接受新任务。

    Executors.newScheduledThreadPool(3).scheduleAtFixedRate(
    new Runnable(){
    public void run() {
    System.out.println("bombing!");

    }},
    6,
    2,
    TimeUnit.SECONDS);
    }

    }
  • 相关阅读:
    插入排序—希尔排序(Shell`s Sort)原理以及Java实现
    八大排序算法原理以及Java实现(直接插入排序)
    HTTP与HTTPS的区别
    TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute【转】
    TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议【转】
    中介者模式-Mediator
    命令模式-command
    桥接模式-Bridge
    迭代器模式-Iterator
    组合模式-Composite
  • 原文地址:https://www.cnblogs.com/ctaixw/p/7968364.html
Copyright © 2011-2022 走看看