第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我自己寫了一個線程死鎖的程序,為什么鎖不住

我自己寫了一個線程死鎖的程序,為什么鎖不住

qq_之恩赫奧丶_0 2016-06-12 09:02:21
public class TextDead implements Runnable{public static void main(String[] args){ TextDead td1=new TextDead(); TextDead td2=new TextDead(); td1.flag=0; td2.flag=1; Thread t1=new Thread(td1); Thread t2=new Thread(td2); t1.start(); t2.start(); }int flag = 0;@Overridepublic void run() {if(flag==0){ try { TextDead.a(); TextDead.b(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }}if(flag==1){ try { TextDead.b(); TextDead.a(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }}}public static synchronized void a() throws InterruptedException{ Thread.sleep(10); System.out.println("SDFDSA");}public static synchronized void b() throws InterruptedException{ Thread.sleep(10); System.out.println(123);}}
查看完整描述

2 回答

?
wwpbjing

TA貢獻20條經(jīng)驗 獲得超5個贊

public?class?TextDead?implements?Runnable{

????int?flag?=?0;
????private?static?Object?o1?=?new?Object();
????private?static?Object?o2?=?new?Object();

????public?static?void?main(String[]?args){
????????TextDead?td1=new?TextDead();
????????TextDead?td2=new?TextDead();
????????td1.flag=0;
????????td2.flag=1;
????????Thread?t1=new?Thread(td1);
????????Thread?t2=new?Thread(td2);
????????t1.start();
????????t2.start();
????}

????@Override
????public?void?run()?{
????????if(flag==0){
????????????try?{
????????????????synchronized?(o1)?{
????????????????????TextDead.a();
????????????????????synchronized?(o2)?{
????????????????????????TextDead.b();
????????????????????}
????????????????}
????????????}?catch?(InterruptedException?e)?{
????????????????e.printStackTrace();
????????????}
????????}
????????if(flag==1){
????????????try?{
????????????????synchronized?(o2)?{
????????????????????TextDead.b();
????????????????????synchronized?(o1)?{
????????????????????????TextDead.a();
????????????????????}
????????????????}
????????????}?catch?(InterruptedException?e)?{
????????????????e.printStackTrace();
????????????}
????????}
????}
????public?static?void?a()?throws?InterruptedException{
????????Thread.sleep(10);
????????System.out.println("SDFDSA");
????}
????public?static?void?b()?throws?InterruptedException{
????????Thread.sleep(10);
????????System.out.println(123);
????}
}


查看完整回答
反對 回復 2016-06-12
?
if_else_

TA貢獻42條經(jīng)驗 獲得超23個贊

你那個邏輯是不是有問題,你判斷的是哪個Flag呢?

查看完整回答
反對 回復 2016-06-12
  • 2 回答
  • 1 關(guān)注
  • 1515 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號