zoukankan      html  css  js  c++  java
  • Java并发编程:线程池

    代码块:

     1 public class test {
     2     public static void main(String[] args) {
     3         test t = new test();
     4         ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200,
     5                 TimeUnit.MILLISECONDS, new LinkedBlockingDeque<Runnable>(5));
     6 
     7         for (int i = 1; i < 16; i++) {
     8             t.testRun(executor, i);
     9             System.out.println("-- 线程池中的线程数 :" + executor.getPoolSize() +
    10                     " -- 对列中的线程数 :" + executor.getQueue().size() +
    11                     " -- 已执行完的线程数 :" + executor.getCompletedTaskCount());
    12         }
    13         executor.shutdown();
    14         while (true) {
    15             if (executor.isTerminated()) {
    16                 System.out.println("* ------ * 所有线程已结束");
    17                 break;
    18             }
    19             try {
    20                 Thread.sleep(100);
    21             } catch (InterruptedException e) {
    22                 e.printStackTrace();
    23             }
    24         }
    25 
    26     }
    27 
    28     public void testRun(ThreadPoolExecutor executor, final int a) {
    29 
    30         executor.execute(new Thread(new Runnable() {
    31             @Override
    32             public void run() {
    33                 System.out.println("线程 开始 ,线程 :" + a);
    34                 try {
    35                     Thread.sleep(a * 1000);
    36                 } catch (InterruptedException e) {
    37                     e.printStackTrace();
    38                 }
    39                 System.out.println("线程 结束,线程 : " + a);
    40             }
    41         }, "name"));
    42 
    43     }
    44 }

    运行结果:

    线程 开始 ,线程 :1
    -- 线程池中的线程数 :1 -- 对列中的线程数 :0 -- 已执行完的线程数 :0
    -- 线程池中的线程数 :2 -- 对列中的线程数 :0 -- 已执行完的线程数 :0
    线程 开始 ,线程 :2
    -- 线程池中的线程数 :3 -- 对列中的线程数 :0 -- 已执行完的线程数 :0
    线程 开始 ,线程 :3
    -- 线程池中的线程数 :4 -- 对列中的线程数 :0 -- 已执行完的线程数 :0
    线程 开始 ,线程 :4
    -- 线程池中的线程数 :5 -- 对列中的线程数 :0 -- 已执行完的线程数 :0
    线程 开始 ,线程 :5
    -- 线程池中的线程数 :5 -- 对列中的线程数 :1 -- 已执行完的线程数 :0
    -- 线程池中的线程数 :5 -- 对列中的线程数 :2 -- 已执行完的线程数 :0
    -- 线程池中的线程数 :5 -- 对列中的线程数 :3 -- 已执行完的线程数 :0
    -- 线程池中的线程数 :5 -- 对列中的线程数 :4 -- 已执行完的线程数 :0
    -- 线程池中的线程数 :5 -- 对列中的线程数 :5 -- 已执行完的线程数 :0
    -- 线程池中的线程数 :6 -- 对列中的线程数 :5 -- 已执行完的线程数 :0
    线程 开始 ,线程 :11
    -- 线程池中的线程数 :7 -- 对列中的线程数 :5 -- 已执行完的线程数 :0
    线程 开始 ,线程 :12
    -- 线程池中的线程数 :8 -- 对列中的线程数 :5 -- 已执行完的线程数 :0
    线程 开始 ,线程 :13
    -- 线程池中的线程数 :9 -- 对列中的线程数 :5 -- 已执行完的线程数 :0
    线程 开始 ,线程 :14
    -- 线程池中的线程数 :10 -- 对列中的线程数 :5 -- 已执行完的线程数 :0
    线程 开始 ,线程 :15
    线程 结束,线程 : 1
    线程 开始 ,线程 :6
    线程 结束,线程 : 2
    线程 开始 ,线程 :7
    线程 结束,线程 : 3
    线程 开始 ,线程 :8
    线程 结束,线程 : 4
    线程 开始 ,线程 :9
    线程 结束,线程 : 5
    线程 开始 ,线程 :10
    线程 结束,线程 : 6
    线程 结束,线程 : 7
    线程 结束,线程 : 11
    线程 结束,线程 : 8
    线程 结束,线程 : 12
    线程 结束,线程 : 13
    线程 结束,线程 : 9
    线程 结束,线程 : 14
    线程 结束,线程 : 15
    线程 结束,线程 : 10
    * ------ * 所有线程已结束
    View Code
  • 相关阅读:
    iOS 组件化方案
    iOS 核心动画概览
    iOS @字面量
    iOS id 和 instancetype 的区别
    C++ 中的 const
    iOS 开发资料
    iOS 架构-App组件化开发
    iOS 知名大牛的一些博客
    iOS 键盘 隐藏系统的 toolBar
    iOS UIView 单独设置一个角为圆角,两个 三个角也行
  • 原文地址:https://www.cnblogs.com/anitinaj/p/7374546.html
Copyright © 2011-2022 走看看