C多執行緒鎖,C定時器鎖多執行緒幾個問題。

發布 科技 2024-02-08
4個回答
  1. 匿名使用者2024-02-05

    例如,如果要修改集合,但該集合可能有多個執行緒訪問它。 執行緒對集合進行不同的更改,這可能會導致集合狀態不穩定。 因此,在對集合進行更改時,請為執行緒提供鎖,鎖定它,修改集合,然後釋放鎖,以便其他程序可以繼續訪問該集合而不會出現問題。

    lock(lockobj)

    lockobj 是鎖,引用型別物件的物件型別,如何定義它並不重要,但不要使用 public 型別的物件作為鎖(這個或 typeof() 實際上是一種非常糟糕的寫法,它很可能會死鎖)。

    引號的內容是鎖定的段,在此期間,其他執行緒必須等待並且無法進入。

    如何在類中編寫的示例:

    class a

    private readonly object syncroot = new object();

    public void clear()

    lock(syncroot)

    unsafeclear();

    另外,你說的等待時間到底是多少?

  2. 匿名使用者2024-02-04

    Lock 物件一次只能由乙個執行緒訪問。 如果你有乙個執行緒死了,沒有出口。 然後其他執行緒無法進入。 將導致死鎖。

    如果要自定義時間,請查詢 ManualResetEvent 和 AutoResetEvent

  3. 匿名使用者2024-02-03

    lock 關鍵字可用於確保塊完成而不會被其他執行緒中斷。 這是通過在塊執行期間獲取給定物件的互斥鎖來實現的。 lock

    該語句以關鍵字開頭。

    lock,它有乙個物件作為引數,在該引數之後有乙個 ** 塊,一次只能由乙個執行緒執行。 例如:public

    classtestthreading

    有關 ClassTest 的詳細資訊,請參閱 MSDN。

  4. 匿名使用者2024-02-02

    他們中的大多數都是正確的,但你似乎沒有明確的鎖定目的。

    計時器似乎與鎖定沒有太大關係。

    因為鎖就像一把鑰匙,它需要乙個每個人都可以訪問的唯一屬性,而如何確定標籤屬性是可以的,相反,我可以給你寫乙個有問題的程式。 可以定義乙個全域性整數 cnt,初始值為 0,開啟 n 個執行緒,同時進行標籤的文字屬性的獲取和設定操作,在設定前新增判斷,如果文字不是 x,則賦值 x,讓 cnt++。 最後,從理論上講,CNT 可能是 1,但在實踐中可能不止於此。

相關回答
2個回答2024-02-08

單螺紋元件和單元模型。

Visual Basic 建立的所有部件都使用單元模型,無論部件是單執行緒還是多執行緒。 單螺紋元件只有乙個單元,該單元包含元件提供的所有物件。 >>>More