1、同步允许一次只有一个线程访问共享资源。使用同步关键字synchronized来进行标识。
同步可分为同步方法和同步块。
2、使用同步有可能造成死锁,为避免这种情况,java提供了线程间通信机制。实现线程之间通信的三个方法是wait(),notify()和notifyAll()。这三个方法是类Object中定义的方法,只能用于synchronized方法中。调用wait()方法,使线程进入等待池。调用notify()方法,唤醒等待池中第一个等待的线程。调用notifyAll()方法,唤醒多个在等待的线程。
3、单例模式也叫单态模式或Singleton模式。运行期间能且只能产生一个对象。如: