java – 什么决定两个竞争线程中的哪一个获得锁定?
当两个线程试图获取同一个对象的锁时,那些被认为决定锁定应该被移交给哪个线程的东西是什么. 最佳答案
根据Java documentation for notify():
因此,如果您使用synchronized(obj){},您基本上无法控制哪个线程将获取对obj的锁定,并且您无法做出任何假设.这取决于调度程序. 如果你想要公平(也就是说,获取锁的下一个线程是队列中的第一个),请看一下ReentrantLock:它有一个布尔标志来指定你想要强制公平. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |