C 學習之多執行緒開發技術(六)

2021-07-05 15:25:59 字數 1603 閱讀 5705

執行緒同步之lock鎖

在framework中已經為我們提供了三個加鎖的機制,分別是

monitor類

lock關鍵字

mutex類 

都是鎖定資料或是鎖定被呼叫的函式。

mutex則多用於鎖定多執行緒間的同步呼叫。簡單的說,monitor和lock多用於鎖定被呼叫端,而mutex則多用鎖定呼叫端。

monitor和lock將**段標記為臨界區,其實現原理是首先鎖定某一私有物件,然後執行**段中的語句,當**段中的語句執行完畢後,再解除鎖。

-----------------lock結構

private  object obj = new object();//定義一私有物件

//……其它**

lock(this)

例如:

lock(this)

", str, system.datetime.now.millisecond.tostring());

thread.sleep(50);

}

----------------lock舉例(控制台程式)

下面程式中有兩個執行緒thread1、thread2和乙個testfunc函式,testfunc會列印出呼叫它的執行緒名和呼叫的時間(mm級的),兩個執行緒分別以30mm和100mm來呼叫testfunc這個函式。testfunc執行的時間為50mm。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading;

using system.threading.tasks;

namespace 執行緒同步

///---

public program()

/// /// ---啟動執行緒

///

public void runthread()

/// /// ---執行緒1

///

private void thread1func()

}/// /// ---執行緒2

///

private void thread2func()

}/// /// ---呼叫函式

///

///

private void testfunc(string str)

", str, system.datetime.now.millisecond.tostring());

thread.sleep(50);}}

/// /// ---殺死執行緒

///

private void closethread()

if (thread2.isalive)}}

}

輸出結果(不同計算機上,結果可能不同):

JAVA學習開發之多執行緒問題

1.程序 每乙個程式都是乙個程序,程序包含乙個程式所需要的所有資源 2.執行緒 用來執行 的工具 3.主線程 乙個程序最少要包含的執行緒 main 程式會自動呼叫主線程的 4.子執行緒 通過主線程開啟的執行緒 執行緒的表現出形式 1.繼承thread類,並重寫run 方法,類似於主線程的main方法...

c 之多執行緒

1.對多執行緒的呼叫用到頭檔案 1.1中的操縱函式 pthread create pthread t tidp,constpthread attr t attr,void start rtn void void arg 第乙個引數為指向執行緒 識別符號的 指標。第二個引數用來設定執行緒屬性。第三個引...

QT開發之多執行緒

在linux中我們經常使用多執行緒程式設計,同時就會提出同步和非同步操作.像原子變數,訊號量,阻塞,自旋鎖,互斥所等,在qt中也有類似的概念,但是在我的開發中用的不是很多,下面列舉一下多執行緒程式設計的基礎.新建乙個gui應用專案,注釋的非常詳細.建立執行緒後,啟動執行緒預設是run函式,除非有特殊...