单例模式——多线程的线程池设计Java代码

以下是一个简单的Java代码示例,演示了如何使用单例模式来设计一个多线程的线程池:

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class ThreadPoolSingleton {

private static ThreadPoolSingleton instance; private ExecutorService executorService; private ThreadPoolSingleton() { executorService = Executors.newFixedThreadPool(10);

}

public static synchronized ThreadPoolSingleton getInstance() {

if (instance == null) {

instance = new ThreadPoolSingleton();

}

return instance;

}

public synchronized ExecutorService getExecutorService() {

return executorService;

}}

在这个示例中,使用了单例模式来保证在整个应用程序中只有一个ThreadPoolSingleton实例。

使用getInstance()方法来获取这个实例。

在getInstance()方法中,如果instance为空,则创建一个新的ThreadPoolSingleton实例。在getExecutorService()方法中,我们返回executorService实例,供调用方使用。由于线程池是共享资源,因此我们在getInstance()方法和getExecutorService()方法中使用了synchronized关键字,以确保线程安全。

相关推荐
aaPIXa6223 分钟前
C++模板元编程:编译期计算Fibonacci数列
java·开发语言·c++
SunnyDays101110 分钟前
Java 编辑 PDF:从增删改查到加密保护
java·修改 pdf·编辑 pdf
张三丰216 分钟前
Agent 不只是聊天框:用 ArkUI 做一个鸿蒙任务工作台
后端
卷无止境23 分钟前
从Python的cryptography库出发,从零开始理解密码学,到构建零信任网络
后端·python
Augustzero25 分钟前
`co_await` 按下暂停键之后:从零看懂 C++20 协程
c++·后端
球king26 分钟前
CC GUI 插件:在 IDEA 中使用 CodeX
java·ide·intellij-idea
豆瓣鸡1 小时前
网关、服务 userId 透传
java·微服务·gateway
bksczm1 小时前
Linux之信号量(POSIX标准)
java·开发语言
Devin~Y1 小时前
电商场景下的Java面试实战:从Spring Boot微服务到Kafka、Redis与AI RAG
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
吠品1 小时前
PHP里取月份最后一天的几种方式
java·开发语言·eureka