[[IT知识]] 深入解析:Java读写锁的关键特性与实战应用

[复制链接]
查看: 27|回复: 0
发表于 昨天 16:09 | 显示全部楼层 | 阅读模式
易博V9下载

深入解析:Java读写锁的关键特性与实战应用


深入解析:Java读写锁的关键特性与实战应用

1、公平选择性,支持非公平和公平锁获取,吞吐量不公平优于公平。

2、重进入,读锁和写锁都支持线程重进入。

3、锁降级,遵循获取写锁、获取读锁、释放写锁的顺序,写锁可以降级为读锁。

实例

  1. public class ReadWriteLockTest {
  2. public static void main(String[] args) {
  3. final Queue q = new Queue();
  4. for (int i = 0; i < 3; i++) {
  5. new Thread() {
  6. @Override
  7. public void run() {
  8. while (true) {
  9. q.get();
  10. }
  11. }
  12. }.start();
  13. new Thread() {
  14. @Override
  15. public void run() {
  16. while (true) {
  17. q.put(new Random().nextInt(10000));
  18. }
  19. }
  20. }.start();
  21. }
  22. }
  23. }
  24. class Queue {
  25. ReadWriteLock rwl = new ReentrantReadWriteLock();
  26. private Object data = null;
  27. public void get() {
  28. rwl.readLock().lock();
  29. try {
  30. System.out.println(Thread.currentThread().getName() + " be ready to read data!");
  31. Thread.sleep((long) (Math.random() * 1000));
  32. System.out.println(Thread.currentThread().getName() + " have read data : " + data);
  33. } catch (InterruptedException e) {
  34. e.printStackTrace();
  35. } finally {
  36. rwl.readLock().unlock();
  37. }
  38. }
  39. public void put(Object data) {
  40. rwl.writeLock().lock();
  41. try {
  42. System.out.println(Thread.currentThread().getName() + " be ready to write data!");
  43. Thread.sleep((long) (Math.random() * 1000));
  44. this.data = data;
  45. System.out.println(Thread.currentThread().getName() + " have write data: " + data);
  46. } catch (InterruptedException e) {
  47. e.printStackTrace();
  48. } finally {
  49. rwl.writeLock().unlock();
  50. }
  51. }
  52. }
复制代码

以上就是java读写锁的特性,希望对大家有所帮助。

易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表