執行緒同步與非同步乙個視窗賣票例項

2021-08-27 05:37:24 字數 1016 閱讀 6842

文章裡借鑑了--這篇文章裡的內容

1、執行緒繼承thred類,並重寫,然後出現非同步的情況。

public class threadtest extends thread

//為了保持數量的一直,票數設定為靜態

static int tick=20;

//重寫run方法,實現買票操作

@override

public void run() else

trycatch(interruptedexception e)}}

}

然後用方法類對這個執行緒進行呼叫

public class mianclass

}

執行緒呼叫的方式如下:哪個執行緒先搶到資源,哪個執行緒就先跑。從第17張票開始,視窗二先搶到了資源,並開始輸出,輸出之後,還沒來得及執行--的操作,然後視窗一就搶到了資源,並開始輸出。導致了異常的情況。如果效果不明顯,可以將迴圈的數值調大。

2、當給執行緒加上同步鎖

public class thredtest extends thread

//為了保持數量的一直,票數設定為靜態

static int tick=20;

//建立乙個靜態鑰匙

static object ob="aa";

//重寫run方法,實現買票操作

@override

public void run() else

}trycatch(interruptedexception e)}}

}

再次用同意的方法類呼叫執行緒。加上鎖之後。每當呼叫這個執行緒,必須等執行完同步鎖裡的方法,才能釋放資源讓下乙個執行緒呼叫。

java中線程的同步的乙個賣票的小案例

public class lesson5testdemo1 這是賣票 class lesson5testdemo2 implements runnable private int tickets 100 private string str new string public void run wh...

乙個多執行緒同步問題

昨天,路過的時候,發現了這個問題 class syncclass catch exception e system.out.println class test implements runnable public void run 輸出結果如圖 其實synchronized void synmth...

C winform 只執行乙個例項視窗

using system using system.windows.forms using system.diagnostics using system.runtime.interopservices using system.reflection namespace emailoperation...