线程安全的问题,知道的给说下,谢谢

根据线程安全的相关知识,分析一下代码,当调用test方法时i>10时是否会引起死锁?并简单说明理由 public void test(int i) { lock (this) { if (i > 0) { i--; test(i); } } } (有知道的给说下,谢谢)
长风秋雁
浏览 235回答 2
2回答

ibeautiful

你的问题描述的不够清楚,但是我可以告诉你这段代码不会出现死锁。 原因:只会出现资源竟用的问题,你lock(this){}对于单个线程(如A1)是可以重入的,即进入的线程A1可以无限调用lock(this){}。但是因为lock资源独占的问题,所以在A1没有完全退出lock(this){}块之前别的线程是无法进入lock(this){}临界区的
打开App,查看更多内容
随时随地看视频慕课网APP