一:執行緒之間的通訊
/*
執行緒之間的通訊:對共同資源訪問
但是操作不同
注意:多個執行緒同時做乙個動作,需要while(falg)判斷
notifyall喚醒。
*/class res
class input implements runnable
public void run()
catch(exception e){}
if(x == 0)
else
x = (x+1)%2;
r.flag = true;
r.notify();
}} }
}class output implements runnable
public void run()
catch(exception e){}
system.out.println(r.name+"........."+r.***);
r.flag = false;
r.notify();}}
} }class thread2
}
二:同步函式
/*
同步函式的鎖是this
靜態同步方不是this,是類名.class
靜態進記憶體是,記憶體中沒有本類物件,但是一定有該類對應的位元組碼檔案物件。
死鎖:同步中巢狀同步!
*/class test
public void run()
}} else
}} }
}class lack
class mylock
class deadlocktest
class thread3
}
Java 多執行緒學習總結2
併發執行最理想的狀況是讓一些 毫不相干 的somebody 自己做自己的事情,和別人無關。但是事實讓確非如此,因為在哲學上講,世界是乙個整體,每個個體之間都存在聯絡,我們讓一些東西不相干,是我們人類為了簡化問題,而從概念上進行的分割劃分,呵呵。事實上,如果某個somebody 為多個執行緒共享,其中...
java多執行緒(2)
1.synchronized 鎖重入 執行緒請求由自己持有的物件時,如果該鎖是重入鎖,請求就會成功,否則阻塞 2.synchronized出現異常時,鎖自動釋放 3.當多個執行緒要同乙個例項時 雙重校驗鎖 public class dubblesingleton catch interruptede...
Java多執行緒2 執行緒的建立
上一講中我們講了什麼是執行緒,這一講我們細細討論一下關於執行緒的那些事。先看看執行緒的狀態轉換圖。1.首先執行緒被建立出來。2.進入就緒佇列中等待cpu分配時間片 這裡的時間片指的是cpu允許執行緒執行的最大時間 若在規定時間內未執行完成,則執行緒繼續進入就緒佇列等待cpu分配時間片。3.執行緒進入...