JAVA-线程池技术

简介: JAVA-线程池技术

目录

概念

什么是线程?

什么是线程池?

线程池出现背景

线程池原理图

JAVA提供线程池

线程池参数

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

概念

什么是线程?

是操作系统能够进行运算调度的最小单位。(例如: cpu 对前端发往后端的一个请求的处理叫一个线程)

什么是线程池?

百度百科:线程池

线程池(Thread Pool)是一种基于池化思想管理线程的工具,它维护多个线程。

线程池出现背景

1、高并发、处理时间长、效率低

2、摩尔定律:处理器的性能大约每两年翻一倍(硬件成本降低)

线程池原理



线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。.

JAVA提供线程池

Java通过Executors提供四种线程池,分别为:

newCachedThreadPool

可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPoo


创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。


newScheduledThreadPool


创建一个定长线程池,支持定时及周期性任务执行。


newSingleThreadExecutor


单线程化的线程池,用唯一的工作线程来执行,任务按照指定顺序(FIFO,LIFO,优先级)执行。

线程池参数

1 、 corePoolSize (线程池基本大小)必须大于或等于 0 ;

2 、 maximumPoolSize (线程池最大大小)必须大于或等于 1 ,必须大于或等 等于 corePoolSize ;
3 、 keepAliveTime (线程存活保持时间)必须大于或等于 0 ;

4 、 unit (存活时间的单位)

5 、 workQueue (任务队列)不能为空;

6 、 threadFactory (线程工厂)不能为空,默认为 DefaultThreadFactory 类

7 、 handler (线程饱和策略)不能为空,默认策略ThreadPoolExecutor.AbortPolicy

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

相关文章
|
5天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
18 2
|
8天前
|
Java
死磕-java并发编程技术(二)
死磕-java并发编程技术(二)
|
8天前
|
存储 Java 调度
死磕-java并发编程技术(一)
死磕-java并发编程技术(一)
|
9天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
5天前
|
传感器 监控 数据可视化
【Java】智慧工地解决方案源码和所需关键技术
智慧工地解决方案是一种新的工程全生命周期管理理念。它通过使用各种传感器、数传终端等物联网手段获取工程施工过程信息,并上传到云平台,以保障数据安全。
25 7
|
6天前
|
Java 调度
Java-Thread多线程的使用
这篇文章介绍了Java中Thread类多线程的创建、使用、生命周期、状态以及线程同步和死锁的概念和处理方法。
Java-Thread多线程的使用
|
4天前
|
Java 数据中心 微服务
Java高级知识:线程池隔离与信号量隔离的实战应用
在Java并发编程中,线程池隔离与信号量隔离是两种常用的资源隔离技术,它们在提高系统稳定性、防止系统过载方面发挥着重要作用。
5 0
|
6天前
|
Java 数据处理 调度
Java中的多线程编程:从基础到实践
本文深入探讨了Java中多线程编程的基本概念、实现方式及其在实际项目中的应用。首先,我们将了解什么是线程以及为何需要多线程编程。接着,文章将详细介绍如何在Java中创建和管理线程,包括继承Thread类、实现Runnable接口以及使用Executor框架等方法。此外,我们还将讨论线程同步和通信的问题,如互斥锁、信号量、条件变量等。最后,通过具体的示例展示了如何在实际项目中有效地利用多线程提高程序的性能和响应能力。
|
7天前
|
安全 算法 Java
Java中的多线程编程:从基础到高级应用
本文深入探讨了Java中的多线程编程,从最基础的概念入手,逐步引导读者了解并掌握多线程开发的核心技术。无论是初学者还是有一定经验的开发者,都能从中获益。通过实例和代码示例,本文详细讲解了线程的创建与管理、同步与锁机制、线程间通信以及高级并发工具等主题。此外,还讨论了多线程编程中常见的问题及其解决方案,帮助读者编写出高效、安全的多线程应用程序。
|
9天前
|
存储 缓存 Java
JAVA并发编程系列(11)线程池底层原理架构剖析
本文详细解析了Java线程池的核心参数及其意义,包括核心线程数量(corePoolSize)、最大线程数量(maximumPoolSize)、线程空闲时间(keepAliveTime)、任务存储队列(workQueue)、线程工厂(threadFactory)及拒绝策略(handler)。此外,还介绍了四种常见的线程池:可缓存线程池(newCachedThreadPool)、定时调度线程池(newScheduledThreadPool)、单线程池(newSingleThreadExecutor)及固定长度线程池(newFixedThreadPool)。
下一篇
无影云桌面