2017-10-22 22:49
东南大学 安卓 0 点赞 评论 收藏
分享
投递百度等公司10个岗位 >
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
Dubsh:notify原理不是很好答,但是{syncronized +Object.wait/notify }
与{Lock+Condition.await/signal}
都是通过“同步队列+等待队列”实现等待通知机制,前者基于Monitor,1同步1等待,后者基于自定义的AQS,1同步n等待。所以大致类比一下 signal的实现吧:当同步队列的的头节点(即持有Lock的线程)调用condition.signal()时,将当前Condition所在等待队列的头节点取出,移动到AQS所在同步队列的尾部,并通过LockSupport.unpark()激活该节点中的线程,让它自旋地获取同步状态。PS:如果是公平锁,则只是自旋而不尝试获取同步状态
投递阿里巴巴等公司10个岗位 >
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
关注他的用户也关注了: