java 同步中的线程出现异常会放弃锁吗
生活随笔
收集整理的這篇文章主要介紹了
java 同步中的线程出现异常会放弃锁吗
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://zhidao.baidu.com/question/374619544.html
實(shí)驗(yàn)證明:會 下面代碼r1會拋出異常,但是r2仍能拿到o對象的鎖public class Test {public static void main(String[] args) throws InterruptedException {final Object o = new Object();Runnable r1 = new Runnable() {public void run() {synchronized (o) {throw new RuntimeException("throws");}}};Runnable r2 = new Runnable() {public void run() {synchronized(o) {System.out.println("acquire lock");}}};new Thread(r1).start();Thread.sleep(1000);new Thread(r2).start();}} 補(bǔ)充一點(diǎn)就是如果拋出異常被捕捉那么還是能繼續(xù)獲得鎖第二個(gè)線程需等待線程一執(zhí)行完畢才能執(zhí)行?
總結(jié)
以上是生活随笔為你收集整理的java 同步中的线程出现异常会放弃锁吗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用java synchronize
- 下一篇: linux find命令格式及find命