当前位置:网站首页 > Java教程 > 正文

java 锁教程



廖雪峰
资深软件开发工程师,业余马拉松选手。

从Java 5开始,引入了一个高级的处理并发的包,它提供了大量更高级的并发功能,能大大简化多线程程序的编写。

我们知道Java语言直接提供了关键字用于加锁,但这种锁一是很重,二是获取时必须一直等待,没有额外的尝试机制。

包提供的用于替代加锁,我们来看一下传统的代码:

如果用替代,可以把代码改造为:

因为是Java语言层面提供的语法,所以我们不需要考虑异常,而是Java代码实现的锁,我们就必须先获取锁,然后在中正确释放锁。

顾名思义,是可重入锁,它和一样,一个线程可以多次获取同一个锁。

和不同的是,可以尝试获取锁:

上述代码在尝试获取锁的时候,最多等待1秒。如果1秒后仍未获取到锁,返回,程序就可以做一些额外处理,而不是无限等待下去。

所以,使用比直接使用更安全,线程在失败的时候不会导致死锁。

可以替代进行同步;

获取锁更安全;

必须先获取到锁,再进入代码块,最后使用保证释放锁;

可以使用尝试获取锁。

  • 上一篇: java教程341集
  • 下一篇: java补码视频教程
  • 版权声明


    相关文章:

  • java教程341集2024-11-18 17:18:06
  • java制作应用教程2024-11-18 17:18:06
  • java递归方法教程2024-11-18 17:18:06
  • java概述教程2024-11-18 17:18:06
  • java标签使用教程2024-11-18 17:18:06
  • java补码视频教程2024-11-18 17:18:06
  • java材料教程2024-11-18 17:18:06
  • java基础教程872024-11-18 17:18:06
  • aws lambda java 教程2024-11-18 17:18:06
  • mc java指令教程2024-11-18 17:18:06