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

    由各个博客总结归纳而来。

    1.线程池的基本思想:

         线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。

    2.线程池的核心代码样式

     1 package BackStage;
     2 
     3 import java.util.concurrent.Executors;
     4 
     5 import java.util.concurrent.ExecutorService;
     6 
     7 public class JavaThreadPool {
     8 
     9     public static void main(String[] args) {
    10 
    11     // 创建一个可重用固定线程数的线程池
    12 
    13     ExecutorService pool = Executors.newFixedThreadPool(2);
    14 
    15     // 创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口
    16 
    17     Thread t1 = new MyThread();
    18 
    19     Thread t2 = new MyThread();
    20 
    21     Thread t3 = new MyThread();
    22 
    23     Thread t4 = new MyThread();
    24 
    25     Thread t5 = new MyThread();
    26 
    27     // 将线程放入池中进行执行
    28 
    29     pool.execute(t1);
    30 
    31     pool.execute(t2);
    32 
    33     pool.execute(t3);
    34 
    35     pool.execute(t4);
    36 
    37     pool.execute(t5);
    38 
    39     // 关闭线程池
    40 
    41     pool.shutdown();
    42 
    43     }
    44 
    45 }
    46 
    47 class MyThread extends Thread {
    48 
    49     @Override
    50 
    51     public void run() {
    52 
    53     System.out.println(Thread.currentThread().getName() + "正在执行。。。");
    54 
    55     }
    56 
    57 }

    3.线程池的类型:

      1.单任务线程池

          ExecutorService pool = Executors.newSingleThreadExecutor();

      2.固定大小的线程池

          ExecutorService poo延迟连接池 = Executors.newFixedThreadPool(2);

      3.可变尺寸的线程池

         ExecutorService pool = Executors.newCachedThreadPool();

      4.延迟连接池

         ScheduledExecutorService pool = Executors.newScheduledThreadPool(2);

      5.单任务延迟连接池

         ScheduledExecutorService pool = Executors.newSingleThreadScheduledExecutor();

      6.自定义线程池

        ThreadPoolExecutor pool = new ThreadPoolExecutor(2,3,2,TimeUnit.MILLISECONDS,bqueue);

        自定义线程池的详细资料见此链接  http://www.infoq.com/cn/articles/java-threadPool/




        

  • 相关阅读:
    数据库根据两列数据得到层级关系SQL Queries to Manage Hierarchical or Parent-child Relational Rows in SQL Server
    escape from braxis site:us.forums.blizzard.com
    LEFT JOIN vs. LEFT OUTER JOIN in SQL Server
    Why do I have more rows after LEFT JOIN?
    Why is the IIS default app pool recycle set to 1740 minutes?
    IIS Best Practices
    USB挂载&U盘启动
    OPKG 介绍
    OPKG 配置
    OPKG 软件包管理
  • 原文地址:https://www.cnblogs.com/adrianlamo/p/3288116.html
Copyright © 2011-2022 走看看