執行緒同步是我們常常遇到的問題,下面這個實驗就是執行緒同步的例子。其功能是先讓程序
1執行,然後再執行緒
1執行一會後再讓執行緒
2執行,當執行緒
2執行完畢後,再按執行緒
1接著執行。
在這個實驗中,要用到在乙個執行緒中操用另乙個執行緒的控制項的知識。
好了,不多說了,下面開始實驗吧。
實驗結果分析:
首先同時啟執行緒
1 與執行緒
2,當執行緒1輸出
a後,我們讓執行緒
1 處於阻塞狀態。讓執行緒
2開始執行。由於執行緒
1會等待執行緒
2執行完畢,只有執行緒
2執行完畢後執行緒
1才有執行的機會。但同於執行緒
2是乙個死迴圈,因此,我們只有手動關閉執行緒
2後執行緒
1才得以執行。
為了文便說明各控制項的屬性與功能,特將
from.desing.cs
**貼出來,如下:
namespace
processtest
base.dispose(disposing);
}
#region
windows
窗體設計器生成的**
//////設計器支援所需的方法- 不要
///使用**編輯器修改此方法的內容。
///
private
void initializecomponent()
#endregion
private system.windows.forms.button btncoordinate;
private system.windows.forms.button btnquit;
private system.windows.forms.richtextbox txtdisplay;
private system.windows.forms.button btnendthread1;
private system.windows.forms.button btnendthread2;
} }
對應介面如下:
程式**如下:
public
partial
class
threadcoordinate : form
//////start the two thread.
//////
///private
void btncoordinate_click(object sender, eventargs e)
//////_thread1's code
///private
void method1()
} //////
_thread2's code
///private
void method2()
} //////
write content to txtdisplay
//////
string that display in the txtdisplay
private
void write(string str)
//////end all the thread ,include thread1 and thread2
//////
///private
void btnquit_click(object sender, eventargs e)
catch (exception ex)
} //////
end thread2;
//////
///private
void btnendthread2_click(object sender, eventargs e)
catch (exception ex)
}///
///end thread1
//////
///private
void btnendthread1_click(object sender, eventargs e)
catch (exception ex)
} }
實驗結果
c 中線程同步
c 中線程同步 monitor方法 這裡只是學習筆記 執行緒同步 monitor方法 執行緒同步就是協調多個執行緒間的併發操作,以獲得符合預期的 確定的執行結果,消除多執行緒應用程式執行中的不確定性,它包含兩個方面 1.保護資源 或 即確保資源 或 同時只能由乙個執行緒 或指定個數的執行緒 訪問,一...
迷宮遊戲實驗設計(實驗準備)
1 求隨機生成乙個迷宮,並求解迷宮。2 要求查詢並理解迷宮生成的演算法,並嘗試用兩種不同的演算法來生成隨機的迷宮。3 要求遊戲支援玩家走迷宮,和系統走迷宮路徑兩種模式。玩家走迷宮,通過鍵盤 方向鍵控制,並在行走路徑上留下痕跡 系統走迷宮路徑要求基於 a 演算法實現,輸 出走迷宮的最優路徑並顯示。設計...
JAVA中線程同步方法
在這裡看到的 1 wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要...