在ATS外掛程式中使用互斥鎖

2021-07-03 12:26:47 字數 550 閱讀 9602

有時候因為業務需要,對某些非執行緒函式,比如mktime,需要使用互斥鎖,可以參照example/blacklist-1或者channel_stats裡面的用法

首先外掛程式頂部宣告

static tsmutex sites_mutex;

在tsplugininit()中初始化

sites_mutex = tsmutexcreate();

在需要使用的地方,加鎖和解鎖

tsmutexlock(sites_mutex)

或tsmutexlocktry(sites_mutex)

tsmutexunlock(sites_mutex);

在**銷毀?

會在該外掛程式範圍內永遠使用,沒有機會銷毀,除非伺服器退出,因為是靜態的,建立物件不多,不好造成大的記憶體洩露

在channel_stats.cc搜尋stats_map_mutex可以得到下面的呼叫位置

參考文獻

[1].

互斥鎖與讀寫鎖使用

sync.mutex和sync.rwmutex是go語言底層基礎物件,用於構建多個goroutine間的同步邏輯,當多個協程需要對共享資料讀寫時用到。具體實現極為簡潔,效能也 舉例 1.多個協程操作同乙個檔案 2.生產者消費者模型 具體例項我就以最簡單的列印方式說明互斥鎖 func print t ...

boost互斥鎖 boost鎖使用總結

boost鎖的概述 boost庫中提供了mutex類與lock類,通過組合可以輕易的構建讀寫鎖與互斥鎖。舉個通俗的例子,如果共享資源是乙個自動鎖住的房間,互斥體是鑰匙,進入房間必須取鑰匙,離開房間應該還鑰匙。這就對應著互斥體的lock 取鑰匙 和unlock 還鑰匙 動態分配記憶體存在類似的情況。如...

互斥鎖pthread mutex t的使用

2011 01 27 10 22 07 分類 linux 標籤 字型大小 大中小訂閱 1.互斥鎖建立 有兩種方法建立互斥鎖,靜態方式和動態方式。posix定義了乙個巨集pthread mutex initializer來靜態初始化互斥鎖,方法如下 pthread mutex t mutex pthr...