队列同步器原理:线程尝试加锁源码分析.pdfVIP

  • 0
  • 0
  • 约2.65千字
  • 约 2页
  • 2026-06-03 发布于北京
  • 举报

队列同步器原理:线程尝试加锁源码分析.pdf

线程2过来尝试加锁,此时的源码会如何呢?

finalbooleannonfairTryAcquire(intacquires){

//先获取到当前的线程-线程1

finalThreadcurrent=Thread.currentThread();

//获取state变量值的过程,JDK源码里大量的运用了volatile,可见性的问题,

保证一些关键变量,修改-的可见性

intc=getState();

//为什么会有这段代码呢?其实进入到这里,代表他之前一定是看到state!=

0,才会进入到这里

//就是人家代码的健壮性,怕的是之前state!=0,所以加锁失败了,但是进

入到这里,人家再次判断一下,如果state是0,那么再次尝试加锁,就怕中间有

人释放了锁

if(c==0){

if(compar

文档评论(0)

1亿VIP精品文档

相关文档