`

java并发编程学习笔记1

阅读更多
  • synchronized关键字
 
            synchronized关键字是Java中比较常用的同步方法,使用简单方便,不用用户自己设置锁的类别,synchronized可用于method,也可以用于某一块的代码,称之为同步代码块
 
  • volatile关键字
 
            volatile关键字常用于标记位,当一个变量使用volatile的时候,表示使用该变量直接操作主存区,而不是复制其变量到相应线程的堆栈区,因此,当volatile变量变化后将会通知到所有的线程,因为该存储区域是共享的。但是,volatile并不能保证原子操作,因此它是一个稍弱的同步修饰
  • explicit lock
 
 
            明确锁,可以在任何的地方使用,因此可以圈定很小的同步范围,灵活多变。
  • nested lock
 
            嵌入锁的出现是因为在多线程中,常会出现相互调用,如果没有nested lock,极容易导致死锁,比如当前线程去调用另一个线程的同步方法,而在同步方法中又调用原线程的方法,将会出现死锁。nested lock会统一一个变量,在递归调用时候+1,而调用完就-1,当为0 的时候意味着出了自身没有其他人调用自身方法。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics