執行緒的死鎖
如果多個執行緒操作多個物件互相請求,那麼會引起死鎖。
package deadlock;
public class somebody
public synchronized void saysomething()
catch (interruptedexception e)
other.singsomething();//讓另外乙個物件請求它已經占有的鎖
system.out.println(this.name+"222222222222"+thread.currentthread());
system.out.println(this.name+"33333333333"+thread.currentthread());
system.out.println(this.name+"44444444444"+thread.currentthread()); }
public synchronized void singsomething()
catch (interruptedexception e)
other.saysomething();//讓另外乙個物件請求它已經占有的鎖
system.out.println(this.name+"cccccccccccc"+thread.currentthread());
system.out.println(this.name+"ddddddddddddd"+thread.currentthread());
} public void setother(somebody other)
}
執行緒1:
ublic class xiaoming extends thread
public void run()
}
執行緒2:
package deadlock;
public class dagang extends thread
public void run()
}
程式入口:
package deadlock;
public class main
}
結果:
小明1111111111thread[thread-0,5,main]
大剛aaaaaaaaaaathread[thread-1,5,main]
大剛bbbbbbbbbbbbbbthread[thread-1,5,main]
解釋:
導致各自占有,互相排斥,故死鎖了!
Java 多執行緒學習總結2
併發執行最理想的狀況是讓一些 毫不相干 的somebody 自己做自己的事情,和別人無關。但是事實讓確非如此,因為在哲學上講,世界是乙個整體,每個個體之間都存在聯絡,我們讓一些東西不相干,是我們人類為了簡化問題,而從概念上進行的分割劃分,呵呵。事實上,如果某個somebody 為多個執行緒共享,其中...
Java多執行緒總結
life s a climb,but the view is great.1.1 繼承thread 1.2 實現runnable 1.3 實現callable2.1 五種狀態 建立,就緒,執行,阻塞,死亡 2.2終止執行緒 自然終止 外部干涉 2.3 阻塞 join yield sleep slee...
Java 多執行緒總結
class mythread extends threadcatch interruptedexception e system.out.println mythread running public class threadtest mythread t new mythread 建立了乙個子執行...