单利模式:保证一个类仅能实例化一个对象。
步骤:
1 私有构造 这样外界就无法new出本类的实例对象!
2 创建本类对象。在本类new一个本类对象。这样不就是
只有一个实例化对象了吗?
3 对外提供公共的访问方法
代码(一)饿汉式:
class Singleton{
private Singleton(){
}
private static Singleton s = new Singleton();
public static Singleton getInstance(){
return s;
}
}
代码(二)懒汉式:
class Singleton{
private Singleton(){
}
private Singleton s;
public static Singleton getInstance(){
if(s==null){
s = new Singleton();
}
}
}
代码(三):
class Singleton{
private Singleton(){}
public static final Singleton = new Singleton();
}
----------------------------------------
多线程的通信
1什么时候需要通信
多线程并发执行的时候,在默认情况下cpu是随机切换线程的
如果我们希望他们按照一定的需求来运算 就需要通信
通讯对象
: 1.同步
* 使用ReentrantLock类的lock()和unlock()方法进行同
步
* 2.通信
* 使用ReentrantLock类的newCondition()方法可以获取
Condition对象
* 需要等待的时候使用Condition的await()方法, 唤醒的
时候用signal()方法
* 不同的线程使用不同的Condition, 这样就能区分唤醒
的时候找哪个线程了 |
|