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

  • 相关阅读:
    mysql常用方法案例
    springboot整合mybatis
    mysql自定义函数统计订单状态:GET_ORDER_STATUS()
    mysql计算时间差-本例为计算分钟差然后/60计算小时保留一位小数,由于直接得小时只会取整
    mysql字段值为null时排序问题
    对象与内存(一)
    java基础提升(关于数组)
    项目的部署
    myeclipse中ssm的搭建
    ui自动化笔记 selenium_webdriver,ui自动化框架(web)
  • 原文地址:https://www.cnblogs.com/duanfu/p/12260821.html
Copyright © 2011-2022 走看看