|NO.Z.00109|——————————|BigDataEnd|——|Java&多线程.V21|——|Java.v21|线程池|概念使用|

一、线程池的概念和使用
### --- 线程池的由来

——>        在服务器编程模型的原理,每一个客户端连接用一个单独的线程为之服务,
——>        当与客户端的会话结束时,线程也就结束了,即每来一个客户端连接,
——>        服务器端就要创建一个新线程。
——>        如果访问服务器的客户端很多,那么服务器要不断地创建和销毁线程,
——>        这将严重影响服务器的性能。
### --- 概念和原理

——>        线程池的概念:首先创建一些线程,它们的集合称为线程池,
——>        当服务器接受到一个客户请求后,就从线程池中取出一个空闲的线程为之服务,
——>        服务完后不关闭该线程,而是将该线程还回到线程池中。
——>        在线程池的编程模式下,任务是提交给整个线程池,而不是直接交给某个线程,
——>        线程池在拿到任务后,它就在内部找有无空闲的线程,再把任务交给内部某个空闲的线程,
——>        任务是提交给整个线程池,一个线程同时只能执行一个任务,但可以同时向一个线程池提交多个任务。
### --- 相关类和方法

——>        从Java5开始提供了线程池的相关类和接口:
——>        java.util.concurrent.Executors类和java.util.concurrent.ExecutorService接口。
二、其中Executors是个工具类和线程池的工厂类,可以创建并返回不同类型的线程池,常用方法如下:
方法声明 功能介绍
static ExecutorService newCachedThreadPool() 创建一个可根据需要创建新线程的线程池
static ExecutorServicenewFixedThreadPool(intnThreads) 创建一个可重用固定线程数的线程池
static ExecutorServicenewSingleThreadExecutor() 创建一个只有一个线程的线程池
三、其中ExecutorService接口是真正的线程池接口,主要实现类是ThreadPoolExecutor,常用方法如下:
方法声明 功能介绍
void execute(Runnable command) 执行任务和命令,通常用于执行Runnable
Future submit(Callable task)  执行任务和命令,通常用于执行Callable
void shutdown() 启动有序关闭
四、编程代码
package com.yanqi.task18;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolTest {

    public static void main(String[] args) {

        // 1.创建一个线程池
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        // 2.向线程池中布置任务
        executorService.submit(new ThreadCallableTest());
        // 3.关闭线程池
        executorService.shutdown();
    }
}
五、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=52811:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task18.ThreadPoolTest
计算的累加和是:50005000

Process finished with exit code 0

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(19)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示