首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 線程資源同步方式總結(六)——SynchronizationAttribute 類別層級同步與其他機制補充

     編輯:關於C語言

7. SynchronizationAttribute:類別層級自動同步

將類別標記為同步,CLR 自動確保同一時間僅一執行緒存取實例。需滿足:

  1. 類別套用 [Synchronization] 屬性
  2. 繼承 ContextBoundObject (上下文繫結)

示範代碼


[System.Runtime.Remoting.Contexts.Synchronization]
public class SynchronizedClass : System.ContextBoundObject
{
    // 所有公開方法自動同步,同一時間僅一執行緒可進入
    public void DoWork() { /* ... */ }
}

原理:同步化內容

  • 實例建立時進入同步化內容
  • 方法呼叫自動獲得/釋放鎖
  • 適用於「天生單執行緒存取」的類別設計

其他同步機制補充

  • AutoResetEvent:單一執行緒釋放,自動重置
  • ManualResetEvent:手動重置,多執行緒同時釋放
  • EventWaitHandle:跨進程事件同步
  • Semaphore:計數信號,限制並發存取數量

以上機制均基於「事件喚醒」模式,詳細用法請參閱 MSDN 文檔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved