1
package com.example.demo.thread;
/**
* @date 2018/3/4
*/
public class ThreadPool {
private static ThreadPool threadPool = new ThreadPool();
private ThreadPool() {
}
/**
* 单例模式的实现方式
*
* @return
*/
public static ThreadPool getThreadPool() {
return threadPool;
}
}
2
package com.example.demo.thread;
/**
* @date 2018/3/4
*/
public class ThreadPool {
private static ThreadPool threadPool;
private ThreadPool() {
}
/**
* 单例模式的实现方式
*
* @return
*/
public static ThreadPool getThreadPool() {
if (threadPool == null) {
return new ThreadPool();
}
return threadPool;
}
}
3
package com.example.demo.thread;
/**
* @date 2018/3/4
*/
public class ThreadPool {
private static ThreadPool threadPool;
private ThreadPool() {
}
/**
* 单例模式的实现方式
*
* @return
*/
public static synchronized ThreadPool getThreadPool() {
if (threadPool == null) {
return new ThreadPool();
}
return threadPool;
}
}
4
package com.example.demo.thread;
/**
* @date 2018/3/4
*/
public class ThreadPool {
private static ThreadPool threadPool;
private ThreadPool() {
}
/**
* 单例模式的实现方式
*
* @return
*/
public static ThreadPool getThreadPool() {
if (threadPool == null) {
synchronized (ThreadPool.class) {
if (threadPool == null) {
return new ThreadPool();
}
}
}
return threadPool;
}
}
5
package com.example.demo.thread;
/**
* @date 2018/3/4
*/
public class ThreadPool {
private static volatile ThreadPool threadPool;
private ThreadPool() {
}
/**
* 单例模式的实现方式
*
* @return
*/
public static ThreadPool getThreadPool() {
if (threadPool == null) {
synchronized (ThreadPool.class) {
if (threadPool == null) {
return new ThreadPool();
}
}
}
return threadPool;
}
}
6
参考