C 中線程同步實驗設計

2021-04-12 23:32:44 字數 2165 閱讀 5522

執行緒同步是我們常常遇到的問題,下面這個實驗就是執行緒同步的例子。其功能是先讓程序

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方法需要...