1、互斥同步:具体方案有synchronized,获得锁monitorenter将锁计数器加1,执行对象monitorexit将锁计数器减1,当锁计数器为0,锁对象释放。
java.util.concurrentJava工具类:下的并发包对应的ReentrantLock,跟synchronized很类似,配合lock()、unlock()、try/finally来使用。
2、非阻塞同步(常用CAS)
3、无同步方案(线程本地存储)
4、volatile关键字(可见性)
5、信号量Semaphore实现同步