我的代码synchronized
在循环中包含一个块,类似这样
while (true) {
synchronized (SOME_MUTEX) {
//some more code here
}
}
还有另一个线程正在运行与同一个互斥锁同步的代码。上面的线程只读,另一个只写。写作线程被饿死了,所以更新没有通过。即使一两秒钟也可以,但是写作线程似乎被无限期地排除在外。
我可以肯定地知道,当这个循环执行时,另一个线程也试图获取互斥锁,我确实理解为什么在执行上述线程时它没有收到它,除了 while 循环到达其结束的时间,并重新开始新的迭代。
此时应该释放互斥锁,不是吗?此时不应该其他线程接收它吗?
谢谢