synchronized为什么能锁住对象

synchronized 一般用作线程的同步,它只是提供了多线程的排斥机制,要和notify() wait() 使用才能进行线程同步,

sychroinzied 能够锁住进场 是因为相当于一个monitor 去监控每个线程,这个monitor 会分配逻辑取数据去管理这些线程,类型线程list 去 竞争 资源,首先进入排队的线程线程会阻塞,当一个拥有lock的线程 unlock时候 notify,会通知其他线程去竞争该锁。所以能够锁住每个线程,sychroinzied 的线程不是公平的,先排先得,但是吞吐量是公平锁的几倍

猜你喜欢

转载自liuyifan789.iteye.com/blog/2310955
今日推荐