libevent的鎖機制之除錯鎖的使用

2021-10-05 08:38:30 字數 627 閱讀 8708

1)除錯鎖的啟用

在開啟除錯鎖之後, 當前鎖為除錯鎖儲存到evthread_lock_fns_全域性變數中,那麼我們之前的鎖被儲存到original_lock_fns_全域性

變數中, 當我們使用除錯鎖的時候,其實除錯鎖在做了一些資訊儲存或資訊判斷後,最後還會使用original_lock_fns_中我們自己的鎖。

也就是除錯鎖對我們的鎖進行了一層封裝,具體如何做的看後面**分析

3)用除錯鎖用什麼用

可以防止一些鎖的錯誤使用如下

在乙個執行緒中釋放另乙個執行緒上的鎖

重新上鎖乙個非遞迴的鎖,並且上鎖成功,說明鎖有bug

對於讀寫鎖,但並沒有使用讀寫標誌, 對於非讀寫鎖,使用了讀寫標誌

對於遞迴鎖,不統的執行緒能夠第二次進入上鎖,說明鎖出現bug

乙個鎖上一次後,不能被釋放多次

4) **分析

1. 首先看下開啟除錯鎖的函式void evthread_enable_lock_debugging(void)

//開啟除錯鎖的功能

void evthread_e

Mysql的鎖機制之表鎖

在資料庫中,除傳統的計算資源 如cpu,ram,i o等 的爭用外,資料也是一種供許多使用者共享的資源,如何保證資料併發訪問的一致性,有效性是所有資料庫必須解決的乙個問題,鎖衝突也是影響資料庫併發訪問效能的乙個重要因素.從這個角度來說,鎖對資料庫而言現得尤其重要,也更加複雜.按照對資料庫的操作分為讀...

InnoDB之鎖機制

前兩天聽了姜老大關於innodb中鎖的相關培訓,剛好也在看這方面的知識,就順便利用時間把這部分知識做個整理,方便自己理解。主要分為下面幾個部分 1.innodb同步機制 innodb儲存引擎有兩種同步機制選擇,一種是mutex,其是完全的互斥方法。另一種是rw lock,可以給臨界資源加上s lat...

InnoDB之鎖機制

前兩天聽了姜老大關於innodb中鎖的相關培訓,剛好也在看這方面的知識,就順便利用時間把這部分知識做個整理,方便自己理解。主要分為下面幾個部分 1.innodb同步機制 innodb儲存引擎有兩種同步機制選擇,一種是mutex,其是完全的互斥方法。另一種是rw lock,可以給臨界資源加上s lat...