单例模式——多线程的线程池设计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关键字,以确保线程安全。

相关推荐
苍何12 小时前
开源微信流 Windows,微信聊天记录,可以直接给 Codex 和 Obsidan 了
后端
代码什么用13 小时前
Spring基础使用
java·后端·spring
Su米苏14 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
明月_清风14 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
码云数智-园园14 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁14 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网14 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西15 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨15 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车55515 小时前
java反射、自定义注解的应用(自定义分页)
java