volatile和synchronized

如何把非原子性操作变成原子性操作?
1、volatile关键字只能保证可见性,并不保证原子性
2、synchronized关键字,使操作具有原子性

区分一下synchronize内置锁和互斥锁
1、内置锁,在对象头,自动获取释放,获得的唯一方式,进入锁保护的同步代码块
2、互斥锁,内置锁就是一个互斥锁,当有多个线程获取锁时,只有一个能获取成功,其他线程阻塞等待。

synchronized修饰范围
1、修饰普通方法,锁实例
2、修饰静态方法,锁类,一般不要在静态方法上用synchronized,会造成阻塞。
3、修饰代码块,锁住一个对象lock,synchronized(lock)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章