Java并发编程之重入锁
来源:互联网 发布:mac玩lol 编辑:程序博客网 时间:2024/05/19 18:42
重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁阻塞,该特性的实现需要解决以下两个问题。
- 1、线程再次获取锁。锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取。
- 2、锁的最终释放。线程重复n次获取了锁,随后在第n次释放该锁后,其他线程能够获取到该锁。锁的最终释放要求锁对于获取进行计数自增,计数表示当前锁被重复获取的次数,而锁被释放时,计数自减,当计数等于0时表示锁已经成功释放。
Java里面内置锁(synchronize)和Lock(ReentrantLock)都是可重入的
synchronized 实例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
Lock 实例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
两个例子最后的结果都是正确的,结果如下:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
可重入锁最大的作用是避免死锁
转载出处: http://blog.csdn.net/itmyhome1990/article/details/75309367阅读全文
0 0
- Java并发编程之重入锁
- Java并发编程之重入锁
- java并发编程 之 并发集合对象
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之ConcurrentHashMap
- Java并发编程:并发容器之ConcurrentHashMap
- Java并发编程:并发容器之ConcurrentHashMap
- Java并发编程:并发容器之CopyOnWriteArrayList
- 【Java并发编程】并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之ConcurrentHashMap
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之ConcurrentHashMap
- Java并发编程:并发容器之CopyOnWriteArrayList
- Java并发编程:并发容器之CopyOnWriteArrayList
- 新一线城市“抢人”大战:多地加快推进户籍改革
- mysql直接导出查询数据到excel
- 历数OpenMobile开发的一些坑
- Amap/google[高德和谷歌]地图加载不出来,【问题总汇】-持续更新...
- webservice之实现一个基于JWS的webservice项目
- Java并发编程之重入锁
- 气球颜色统计 HDU-1004
- 创建Cocos2dx项目两种方法
- hadoop集群监控工具--ganglia的搭建(YUM的方式)
- C#操作WebApi(Sql参数化)
- C/C++常考笔试面试题
- AngularJS入门-(5)指令
- IO基础之对象流、打印流、标准的IO和扫描器类的简单说明
- Flume架构以及应用介绍