随笔 - 158  文章 - 0 评论 - 4 阅读 - 19万
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

随笔分类 - 

synchronized 底层实现原理
摘要:线程在获取锁的时候,其指针指向的是一个monitor对象(由C++实现)的起始地址。每个对象实例都会有一个 monitor。其中monitor可以与对象一起创建、销毁;亦或者当线程试图获取对象锁时自动生成。而monitor是添加Synchronized关键字之后独有的。synchronized同步块 阅读全文
posted @ 2019-09-14 15:38 一中晴哥威武 阅读(428) 评论(0) 推荐(0) 编辑
写一个死锁
摘要:从运行的打印结果我们可以看到T1和T2各自获得了a和b锁,并且互相在尝试获取对方手里的锁,但在等待对方释放锁的过程中谁也不让出已获得的锁,谁都没有赢,则形成了死锁 阅读全文
posted @ 2019-07-18 10:23 一中晴哥威武 阅读(185) 评论(0) 推荐(0) 编辑
Semaphore拿到执行权的线程之间是否互斥
摘要:java线程之间的控制,使用Semaphore 实现 互斥 下面我们通过Semaphore来实现一个比较好的互斥操作: 输出结果: 阅读全文
posted @ 2019-07-11 11:18 一中晴哥威武 阅读(1030) 评论(0) 推荐(0) 编辑
ReadWriteLock读写之间互斥吗
摘要:开发中遇到并发的问题一般会用到锁,Synchronized存在明显的一个性能问题就是读与读之间互斥;ReadWriteLock是JDK5中提供的读写分离锁。读写分离锁可以有效地帮助减少锁竞争,以提升系统的性能。 ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。Java并发库中Ree 阅读全文
posted @ 2019-07-11 10:39 一中晴哥威武 阅读(1867) 评论(0) 推荐(0) 编辑
synchronized 和 lock 的区别
摘要:1、Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问; 2、Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者sync 阅读全文
posted @ 2019-01-17 17:19 一中晴哥威武 阅读(185) 评论(0) 推荐(0) 编辑
synchronized锁住的是代码还是对象,以及synchronized底层实现原理
摘要:synchronized (this)原理:涉及两条指令:monitorenter,monitorexit;再说同步方法,从同步方法反编译的结果来看,方法的同步并没有通过指令monitorenter和monitorexit来实现,相对于普通方法,其常量池中多了ACC_SYNCHRONIZED标示符。 阅读全文
posted @ 2018-11-14 15:50 一中晴哥威武 阅读(288) 评论(0) 推荐(0) 编辑
浅谈 CAS
摘要:CAS: CAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于 synchronized 同步锁的一种乐观锁。 CAS应用: CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将 阅读全文
posted @ 2018-10-29 16:25 一中晴哥威武 阅读(117) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示