實驗證明不在synchronized塊中就是異步執行,在synchronized就是同步執行

實驗證明不在synchronized塊中就是異步執行,在synchronized就是同步執行

 

public class Task {
	public void doLongTimeTask() {
		for(int i=0;i<100;i++) {
			System.out.println("nosynchronized threadName="+Thread.currentThread().getName()+"  i=="+(i+1));
		}
		System.out.println("");
		synchronized (this) {
			for(int i=0;i<100;i++) {
				System.out.println("synchronized threadName="+Thread.currentThread().getName()+"  i=="+(i+1));
			}
		}
	}
}

 

 

說明:兩個線程同時調用方法doLongTimeTask

結果說明:先是兩個線程同時輸出nosynchronized,執行完畢後某一個線程會使用帶鎖的方法並一直到結束,結束後,下一個進程才能繼續使用

 

 

發佈了73 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章