1/7ページ

執行緒和fork

一、簡介     當執行緒呼叫fork時,就為子程序建立了整個程序地址空間的副本,父子程序通過寫時複製技術來共享記憶體頁的這一副本。     子程序通過幾成整個地址空間的副本,也從父程序那裡繼承了所有互斥量、讀寫鎖和條件變數的狀態。如果父程序包含多個執行緒,子程序在fork返回後,如果緊接著不是馬上 […]

多執行緒相關概念整理

一、為什麼要使用多執行緒(併發與並行)  如果僅針對單核CPU,多執行緒適合於任務執行期間需要等待返回結果的場景。一個任務進入等待後,CPU進入空閒,這時把CPU資源分配給其他執行緒執行。這個多個任務在單CPU上的切換,就是併發。 CPU線上程上切換的時間一般小於任務等待的時間,所以多個執行緒併發執 […]

資料庫鎖機制

1 前言 資料庫大併發操作要考慮死鎖和鎖的效能問題。看到網上大多語焉不詳(尤其更新鎖),所以這裡做個簡明解釋,為下面描述方便,這裡用T1代表一個資料庫執行請求,T2代表另一個請求,也可以理解為T1為一個執行緒,T2 為另一個執行緒。T3,T4以此類推。下面以SQL Server(2005)為例。 2 […]

鎖、PV操作、程序互斥與同步的實現

什麼是臨界區? 每個程序中訪問臨界資源的那段程式稱為臨界區(臨界資源是一次僅允許一個程序使用的共享資源)。每次只准許一個程序進入臨界區,進入後不允許其他程序進入。 一、鎖機制: 1、鎖: 在多執行緒程式設計中,作業系統引入了鎖機制。通過鎖機制,能夠保證在多核多執行緒環境中,在某一個時間點上,只能有一 […]

synchronized鎖

前言:     在程式中,若存在多個執行緒同時操作共享變數,就會造成執行緒不安全,要保證多執行緒操作共享資料安全,必須加上互斥鎖,同一時刻只有一個執行緒可以運算元據。 synchronized三種用法:     1.例項方法     2.靜態方法     3.程式碼塊 我們先寫出程式碼,檢視執行結果 […]

簡述python多執行緒中的互斥鎖

        在程式設計中,為了保證共享資料操作的完整性,引入了互斥鎖的概念。每個物件都對應於一個可稱為” 互斥鎖” 的標記,這個標記用來保證在任一時刻,只能有一個執行緒訪問該物件。在python中由於多執行緒的存在,並且對全域性變數作用時有可能產生全域性變數紊亂問題,所以 […]

資料庫的四種隔離級別的實現方式

之前看了一段時間的資料庫。對於資料庫的四種隔離級別一直有疑惑,很多人對於四種隔離級別所面對的情況說法也不一致,下面我說一下我的理解。 說道資料庫的四種隔離級別,就要先說資料庫的ACID,原子性,一致性,隔離性和永續性,這四種隔離級別就是針對資料庫的隔離性,下面針對資料庫的隔離性來說說資料庫會遇到什麼 […]

Linux多執行緒鎖屬性設定方法

互斥鎖是Linux下多執行緒資源保護的常用手段,但是在時序複雜的情況下,很容易會出現死鎖的情況。 可以通過設定鎖的屬性,避免同一條執行緒重複上鎖導致死鎖的問題。 通過int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)介 […]