《Linux 高級(jí)程序設(shè)計(jì)》講述了Linux操作系統(tǒng)下應(yīng)用層“一段執(zhí)行單元(進(jìn)程)對(duì)系統(tǒng)資源(CPU資源、各類文件資源)的管理”。詳細(xì)介紹了Linux系統(tǒng)編程環(huán)境及編程工具(GCC/Makefile/GDB)、文件管理(文件屬性控制、ANSI以及POSIX標(biāo)準(zhǔn)下文件讀寫操作、終端編程)、進(jìn)程管理(創(chuàng)建、退出、執(zhí)行、等待、屬性控制)、進(jìn)程間通信(管道、消息隊(duì)列、共享內(nèi)存)、進(jìn)程間同步機(jī)制(信號(hào)量)、進(jìn)程間異步機(jī)制(信號(hào))、線程管理(創(chuàng)建、退出、取消等以及屬性控制)、線程間同步(互斥鎖、讀寫鎖、條件變量)、線程與信號(hào)以及BSD socket編程中的TCP、UDP、原始套接口、網(wǎng)絡(luò)服務(wù)器應(yīng)用開(kāi)發(fā)等內(nèi)容,并對(duì)Linux系統(tǒng)下的音頻應(yīng)用程序開(kāi)發(fā)做了講解。
Linux多線程編程-線程同步機(jī)制互斥鎖基本原理互斥以排他方式防止共享數(shù)據(jù)被并發(fā)修改。互斥鎖是一個(gè)二元變量,其狀態(tài)為開(kāi)鎖(允許0)和上鎖(禁止1),將某個(gè)共享資源與某個(gè)特定互斥鎖綁定后,對(duì)該共享資源的訪問(wèn)如下操作:(1)在訪問(wèn)該資源前,首先申請(qǐng)?jiān)摶コ怄i,如果該互斥處于開(kāi)鎖狀態(tài),則申請(qǐng)到該鎖對(duì)象,并立即占有該鎖(使該鎖處于鎖定狀態(tài)),以防止其它線程訪問(wèn)該資源;如果該互斥鎖處于鎖定狀態(tài),默認(rèn)阻塞等待;(2)只有鎖定該互斥鎖的進(jìn)程才能釋放該互斥鎖。其它線程的釋放操作無(wú)效。