**示例:
public class synctest
public static void test1()
catch (interruptedexception e)
system.err.println("====");
system.err.println("test1");}}
public static synchronized void test2()
}class t1 extends thread
}class t2 extends thread
}
執行結果:
****
test2
等待5秒
====
test1
當使用同步方法時
public static synchronized void test1()
catch (interruptedexception e)
system.err.println("====");
system.err.println("test1");
}
執行結果:
等待5秒
====
test1
****
test2
[b]結論:
同步方法將當前物件做為同步鎖,同步鎖生效後該物件內所有的同步方法都不可被呼叫。[/b]
執行緒同步塊跟同步方法的區別
同步 塊,當多個執行緒訪問同一物件object中的synchronized this 時,同一時刻只能乙個執行緒訪問synchronized this 同步 塊中內容,其他執行緒可以訪問該object中非synchronized this 同步 塊,最關鍵的是,其他執行緒在乙個執行緒訪問同步 塊時,...
同步塊和同步塊索引
微軟在設計基本框架時充分考慮了執行緒同步的問題,其結果就是clr為每乙個堆內物件都提供了支援執行緒同步的功能,這是同步機制的雛形。但是對每個堆內物件都分配同步塊有乙個較大的弊端,就是這樣增大了記憶體的消耗。在一般的系統中,需要同步機制支援的物件可能只佔少數,這樣對於大多數物件來說,乙個同步塊的記憶體...
JAVA 同步監視器 同步塊和同步監視方法
同步監視器 監視器可以看作是包含乙個特殊房間的建築物。這個特殊的房間一次只能容納乙個客戶 執行緒 這個房間通常包含一些資料和 如果客戶想要占用這個特殊的房間,他必須先進入走廊 入口 等待。排程程式將選擇乙個基於一些標準 例如。先進先出 如果他因為某種原因被停職,他將被送到等候室,並安排稍後重新進入特...