java – 同步块内的同步块
发布时间:2020-12-15 04:42:41 所属栏目:Java 来源:网络整理
导读:我可以在另一个中包含一个同步块来同步另一个对象吗? 例: synchronized(myObjetc1){ // code synchronized(myObjetc2){ // code } } 如果是这样,它仍然是一种正确的技术还是风险太大? 解决方法 如果你在其他地方以相同的顺序同步,那就没问题了. 如果其他
我可以在另一个中包含一个同步块来同步另一个对象吗?
例: synchronized(myObjetc1){ // code synchronized(myObjetc2){ // code } } 如果是这样,它仍然是一种正确的技术还是风险太大? 解决方法
如果你在其他地方以相同的顺序同步,那就没问题了.
如果其他一些线程要执行以下代码 synchronized(myObjetc2){ // code synchronized(myObjetc1){ // code } } 你可能会遇到僵局. 假设上面的变量引用相同的对象,请考虑以下情况.第一个线程(您的代码)将监视器锁定在myObjetc1上.线程调度程序切换线程上下文.第二个线程(上面的代码)将监视器锁定在myObjetc2上.线程调度程序切换线程上下文.第一个线程尝试将监视器锁定在myObjetc2上.它必须等待,因为第二个线程有它.线程调度程序切换上下文.第二个线程尝试将监视器锁定在myObjetc1上.它必须等待,因为第一个线程有它.繁荣!僵局. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |