1。
在乙個同步化的靜態方法執行之前,它會獲取與它的class 物件相關聯的乙個管程(monitor)鎖[jls 8.4.3.6]。
所以在上面的程式中,主線程會在建立第二個執行緒之前獲得與pingpong.class 相關聯的那個鎖。只要主線程
占有著這個鎖,第二個執行緒就不可能執行同步化的靜態方法。具體地講,在main 方法列印了ping 並且執行
結束之後,第二個執行緒才能執行pong 方法。只有當主線程放棄那個鎖的時候,第二個執行緒才被允許獲得這
個鎖並且列印pong 。
package com.yinbodotcc;
public class pingpong
};// t.setdemo(true);
t.start();
system.out.println( "ping" );
}static synchronized void pong()
} 2。如果上面是用t.run()代替t.start()則不是乙個多執行緒了,只是普通方法呼叫。這個時候列印pong ping
3.上面程式中,我在t.start()上面加入t.setdemo(true),同時pong方法裡面用while迴圈(見紅色部分),則
會列印出若干個pong(不會乙個也不列印,也不是一直列印下去)
給數字加上註解
注釋 命名清晰 簡單,單獨的變數使用,例如 變數定義 int a 1 判斷 if a 1 這些情況下通常會利用巨集定義來代替這些幻數 魔數,例如 定義 define max 1 使用 a max if a max 陣列使用,例如 gui程式設計需要定義5個按鍵,class,pop,定義 button...
給postmessage加上callback方法
postmessage雙向通訊中,是不能使用 函式的。window.postmessage 這樣是不行的,js會提示function不會被轉殖。我猜啊因為postmessage是通過dom通訊,js物件會被json化 也就是說不能傳遞方法。不過,話說回來,有什麼不能的呢,大不了,把function ...
給flash加上了版權
抽空看了下contextmenu類和contextmenuitem類,偶然又看見f8幫助裡居然有單例模式的介紹,仿照寫了乙個,就當練習 圖是偶隨便畫的 點這裡 顯示 隱藏 不會用類的看這裡 fla中標準應該這麼寫 cr.show private var cm contextmenu cm new c...