當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > CPP開(kāi)發(fā)者
[導(dǎo)讀]鎖是一個(gè)常見(jiàn)的同步概念,我們都聽(tīng)說(shuō)過(guò)加鎖(lock)或者解鎖(unlock),當(dāng)然學(xué)術(shù)一點(diǎn)的說(shuō)法是獲?。╝cquire)和釋放(release)。恰好pthread包含這幾種鎖的API,而C11只包含其中的部分。接下來(lái)我主要通過(guò)pthread的API來(lái)展開(kāi)本文。mutex(互斥量...

鎖是一個(gè)常見(jiàn)的同步概念,我們都聽(tīng)說(shuō)過(guò)加鎖(lock)或者解鎖(unlock),當(dāng)然學(xué)術(shù)一點(diǎn)的說(shuō)法是獲?。╝cquire)和釋放(release)。

恰好pthread包含這幾種鎖的API,而C 11只包含其中的部分。接下來(lái)我主要通過(guò)pthread的API來(lái)展開(kāi)本文。

mutex(互斥量)

mutex(mutual exclusive)即互斥量(互斥體)。也便是常說(shuō)的互斥鎖。

盡管名稱(chēng)不含lock,但是稱(chēng)之為鎖,也是沒(méi)有太大問(wèn)題的。mutex無(wú)疑是最常見(jiàn)的多線(xiàn)程同步方式。其思想簡(jiǎn)單粗暴,多線(xiàn)程共享一個(gè)互斥量,然后線(xiàn)程之間去競(jìng)爭(zhēng)。得到鎖的線(xiàn)程可以進(jìn)入臨界區(qū)執(zhí)行代碼。

//?聲明一個(gè)互斥量
pthread_mutex_t?mtx;
//?初始化
pthread_mutex_init(
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉