java上实现同步有哪些方式方法

 时间:2024-11-01 08:51:06

1、加锁的时候不能设置超时。ReentrantLock有提供tryLock方法,可以设置超时时间,如果超过了这个时间并且没有获取到锁,就会放弃,而synchronized却没有这种功能。

java上实现同步有哪些方式方法

2、ReentrantLock可以使用多个Condition,而synchronized却只能有1个。不能中断一个试图获得锁的线程。

java上实现同步有哪些方式方法

3、ReentrantLock可以选择公平锁和非公平锁。ReentrantLock可以获得正在等待线程的个数,计数器等。

java上实现同步有哪些方式方法

4、这里需要注意的是thread1调用Condition的await方法之后,thread1线程释放锁。

java上实现同步有哪些方式方法java上实现同步有哪些方式方法

5、然后马上加入到Condition的等待队列,由于thread1释放了锁,thread2获得锁并执行,thread2执行signalAll方法之后,Condition中的等待队列thread1被取出并加入到AQS中。

java上实现同步有哪些方式方法

6、接下来thread2执行完毕之后释放锁,由于thread1已经在AQS的等待队列中,所以thread1被唤醒,继续执行。

java上实现同步有哪些方式方法java上实现同步有哪些方式方法
  • jquery怎么让div解绑click事件
  • c 如何加载.so文件
  • tkinter的控件设置透明
  • 在windows上使用git生成公私钥对的方法
  • Linux入侵分析步骤
  • 热门搜索
    草鱼怎么做好吃 自我简介怎么写 短发怎么打理好看 360浏览器怎么截图 右肩膀疼是怎么回事 背心痛是怎么回事 元方你怎么看 生菜怎么做好吃又简单 凉面怎么做好吃 毛线拖鞋的编织方法