以下是一个简单的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关键字,以确保线程安全。