c 多執行緒加鎖的問題,C 執行緒中方法可以加鎖嗎?

時間 2023-03-02 06:25:02

1樓:匿名使用者

lock是鎖住執行緒吧,用protect和final不給呼叫算不。

2樓:匿名使用者

恩,可以的。

先定義lock物件。

object objlock = new object();

在lock塊中呼叫一個函式。

lock(objlock)

3樓:

可以啊 放在lock塊裡。。

還有一種執行緒同步一系統的方法。。比如用monitor mutex一系統的方法 用來實現執行緒之間的同步。

防止死鎖。

4樓:匿名使用者

我覺得可以加鎖,但是有什麼意義嗎。

有關c#的加鎖控制多執行緒操作具體如何實現、

5樓:匿名使用者

加鎖主要用於鎖住引用型的公共變數,比如class ,string ,而值型別的變數,如int ,struct是不能用鎖的,用法超簡單,就一個lock,舉例如下:

string str;

private void changestr()}lock裡面儘量少放東西,否則影響效率。

c#多執行緒怎麼鎖定全域性變數

6樓:du瓶邪

public static object locker = new object();新增一個物件作為鎖。

就是在有修改的時候加上lock

lock (locker)//鎖。

lock (locker)//鎖。

7樓:匿名使用者

借鑑設計模式中的單例模式,可以先宣告一個無關變數sync,進行操作前。

lock(sync)

單例模式不是直接鎖定例項變數instance,是因為可能還沒有生成該例項,你這個應該可以直接鎖定dictionary

8樓:sk蓮華生輝

方法還是很多的,例如:

public static dictionarydictionary = new dictionary();

public static object locker = new object();新增一個物件作為鎖。

public static void addrecord()/執行緒1迴圈呼叫此函式。

}public static void deleterecord()/執行緒2迴圈呼叫此函式。

}至於執行緒的呼叫過程就不寫了,你根據實際情況操作吧。

c# timer lock 多執行緒 的幾點疑問。

9樓:陽光的雷咩咩

大部分算是對了的,但是你似乎沒明確lock的目的。

timer與lock似乎沒什麼關係。

因為lock就像鑰匙,需要大家都可以訪問、且唯一的屬性你如何確定label屬性沒問題,恰恰相反,我可以給你寫出有問題的程式。你可以定義個全域性整數cnt,初始為0,開啟n個執行緒,同時對label執行獲取和設定text屬性的操作,設定前加個判斷,假如其text不為x,則賦為x,並讓cnt++。最後理論上cnt只可能為1,但實際上可能不止。

c#多執行緒 一個緩衝佇列,一個生產者執行緒,一個消費者執行緒,這兩個執行緒同時操作這個佇列,必須加互斥鎖嗎

10樓:網友

加互斥鎖的目的,是解決多執行緒訪問同一資源而產生不可預期的異常,那麼你現在是一個執行緒只負責插入,另一執行緒負責查詢和刪除,查詢和刪除跟插入沒有關係的話,那麼顯然是不需要執行緒鎖的,你要是問隱患的話,那麼由於多執行緒或者多使用者的原因,頻繁操作幾張相關表,可能造成資料庫的表死鎖。

11樓:網友

如果你是用的佇列不是執行緒安全的, 那麼會存在隱患。

如果你的。net framework>=4的話 系統提供了執行緒安全的佇列

c# 多執行緒對同一檔案進行讀操作【只讀不寫】需不需要加鎖

12樓:傳奇勇者

不用加鎖,每個執行緒相當於重新開啟這個檔案,各自讀各自的,互不干擾的。

13樓:匿名使用者

看你是什麼檔案了哦。

一般的記事本檔案沒有影響不需要加。

其它的檔案,比如office檔案貌似你只能開啟一個。

14樓:找熱門電影

不用加鎖的,只讀不寫的話。

¹øóúc#¶àïß³ì(¹øóúëøµäîêìâ) 100

c#多執行緒怎麼鎖定全域性變數?

15樓:路路通

public static object locker = new object();新增一個物件作為鎖。

就是在有修改的時候加上lock

lock (locker)//鎖。

/*新增過程*/

lock (locker)//鎖。

16樓:sk蓮華生輝

方法還是很多的,例如:

public static dictionarydictionary = new dictionary();

public static object locker = new object();新增一個物件作為鎖。

public static void addrecord()/執行緒1迴圈呼叫此函式。

}public static void deleterecord()/執行緒2迴圈呼叫此函式。

}至於執行緒的呼叫過程就不寫了,你根據實際情況操作吧。

c 的執行緒和程序的區別,C 多執行緒多程序問題

執行緒是指程序內的一個執行單元,也是程序內的可排程實體.與程序的區別 1 地址空間 程序內的一個執行單元 程序至少有一個執行緒 它們共享程序的地址空間 而程序有自己獨立的地址空間 2 資源擁有 程序是資源分配和擁有的單位,同一個程序內的執行緒共享程序的資源 3 執行緒是處理器排程的基本單位,但程序不...

C 如何運用多執行緒 5,C 中構建多執行緒應用程式

thread th1 new thread new threadstart aa 執行緒1 thread th2 new thread new threadstart aa 執行緒2 thread th3 new thread new threadstart aa 執行緒3 執行緒1啟動。執行緒2啟...

C 中構建多執行緒應用程式

高手進 c 多執行緒處理 非同步多執行緒記憶體釋放主要靠自己,c 的垃圾 機制是,只有當程式段執行完畢後,垃圾 機制才對程式開闢的記憶體進行垃圾 而多執行緒內的程式,特別是客戶端連線,只要客戶端沒有斷開連線,你的執行緒就會繼續執行,除非斷開客戶端,執行緒的生命週期結束,垃圾 機制才會對該執行緒產生佔用的記憶體進行 如果...