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

    使用线程池:
    1. 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大
    2. 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中公共交通工具。
    3. 好处:
    提高响应速度(减少了创建线程的时间)
    降低资源的消耗(重复利用线程池中线程,不需要每次都创建)
    便于线程管理(...)
    corePoolSize:核心池的大小
    maximumPoolSize:最大线程数
    keepAliveTime:线程没有任务时最多保持多长时间后会终止
    1. JDK 5.0起提供了线程池相关API:ExecutorService 和 Executors
    2. ExecutorService:真正的线程池接口。常见子类ThreadPoolExecutor
    • void execute(Runnable command):执行任务/命令,没有返回值,一 般用来执行Runnable
    • <T>Future<T> submit(Callable<T> task):执行任务,有返回值,一般用来执行Callable
    • void shutdown():关闭连接池
     
    1. Executors:工具类、线程池的工厂类、用于创建并返回不同类型的线程池
     1 package com.thread.gaoji;
     2 
     3 import java.util.concurrent.ExecutorService;
     4 import java.util.concurrent.Executors;
     5 
     6 //测试线程池
     7 public class TestPool {
     8 
     9     public static void main(String[] args) {
    10         //1.创建服务,创建线程池
    11         //newFixedThreadPool(10); 参数为线程池的大小
    12         ExecutorService service = Executors.newFixedThreadPool(10);
    13 
    14         //执行
    15         service.execute(new MyThread());
    16         service.execute(new MyThread());
    17         service.execute(new MyThread());
    18         service.execute(new MyThread());
    19 
    20         //2.关闭连接
    21         service.shutdown();
    22     }
    23 }
    24 
    25 class MyThread implements Runnable {
    26 
    27     @Override
    28     public void run() {
    29         System.out.println(Thread.currentThread().getName());
    30     }
    31     
    32 }
    33 
    34 结果:
    35 pool-1-thread-2
    36 pool-1-thread-3
    37 pool-1-thread-1
    38 pool-1-thread-4

  • 相关阅读:
    JavaScript 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome)
    一个程序员的梦想
    无刷新分页控件(原创)(jQuery+json+ashx)(Ajax)
    Ajax无刷新分页(jQuery+Json)
    飞信 .net接口
    STL学习小记起因
    C++山寨CSharp事件
    在win8上花了一上午的闲暇做的贪吃蛇sample, 顺便移植到了WPF...
    STL学习小记顺序容器
    最近做的一个store app音乐箱
  • 原文地址:https://www.cnblogs.com/duanfu/p/12260821.html
Copyright © 2011-2022 走看看