- 01 系統(tǒng)調(diào)用的概念
- 02 Linux操作系統(tǒng)提供的系統(tǒng)調(diào)用
- 03 文件描述符
- 04 open_close函數(shù)
- 05 write函數(shù)
- 06 read函數(shù)
- 07 mycp
- 08 remove函數(shù)
- 09 系統(tǒng)調(diào)用與庫(kù)函數(shù)關(guān)系
- 10 進(jìn)程的概念
- 11 進(jìn)程的狀態(tài)及切換
- 12 進(jìn)程控制塊
- 13 進(jìn)程號(hào)
- 14 創(chuàng)建進(jìn)程fork函數(shù)
- 15 父子進(jìn)程有自己獨(dú)立的地址空間
- 16 子進(jìn)程繼承父進(jìn)程緩沖區(qū)
- 17 進(jìn)程的掛起
- 18 wait函數(shù)
- 19 waitpid函數(shù)
- 20 創(chuàng)建進(jìn)程擴(kuò)展
- 21 孤兒進(jìn)程
- 22 進(jìn)程的終止exit
- 23 注冊(cè)進(jìn)程退出清理函數(shù)
- 24 vfork
- 25 exec函數(shù)族簡(jiǎn)介
- 26 execl函數(shù)
- 27 execlp函數(shù)
- 28 execle函數(shù)
- 29 execv函數(shù)
- 30 execvp函數(shù)
- 31 execve函數(shù)
- 32 exec之后進(jìn)程保留的屬性
- 33 system函數(shù)
- 34 system函數(shù)的實(shí)現(xiàn)
- 35 進(jìn)程間通信的概念
- 36 信號(hào)的概念
- 42 signal函數(shù)1
- 43 signal函數(shù)返回值
- 44 可重入函數(shù)
- 45 信號(hào)集的概念
- 46 sigemptyset函數(shù)
- 47 sigfillset函數(shù)
- 48 sigismember函數(shù)
- 49 sigaddset函數(shù)
- 50 sigdelset函數(shù)
- 51 信號(hào)集合的例子
- 52 信號(hào)阻塞集的概念
- 53 sigprocmask函數(shù)
- 54 無(wú)名管道的概念
- 55 無(wú)名管道的創(chuàng)建
- 56 無(wú)名管道通信注意點(diǎn)
- 57 無(wú)名管道讀寫(xiě)特點(diǎn)
- 58 文件描述符概述
- 59 dup文件描述符復(fù)制
- 60 dup2文件描述符復(fù)制
- 61 復(fù)制文件描述符后新舊文件描述符特點(diǎn)
- 62 exec之后文件描述特點(diǎn)
- 63 練習(xí)expr思路
- 64 命名管道的概述
- 65 命名管道創(chuàng)建及讀寫(xiě)
- 66 驗(yàn)證read阻塞
- 67 寫(xiě)進(jìn)程退出導(dǎo)致read阻塞不住
- 68 讀進(jìn)程結(jié)束寫(xiě)進(jìn)程再寫(xiě)命名管道寫(xiě)進(jìn)程收到信號(hào)退出
- 69 write帶阻塞
- 70 非阻塞方式打開(kāi)命名管道
- 71 命名管道聊天思路
- 72 消息隊(duì)列概述
- 73 ftok函數(shù)
- 74 消息隊(duì)列的創(chuàng)建及打開(kāi)
- 75 消息隊(duì)列中消息的格式
- 76 msgsnd消息發(fā)送
- 77 msgrcv接收消息
- 78 msgctl消息隊(duì)列控制
- 79 消息隊(duì)列聊天答案講解
- 80 共享內(nèi)存的概念
- 81 shmget函數(shù)
- 82 shmat共享內(nèi)存映射
- 83 shmdt共享內(nèi)存解除映射關(guān)系
- 84 shmctl共享內(nèi)存控制
- 85 線(xiàn)程的概念
- 86 共享內(nèi)存例子
- 87 pthread_create線(xiàn)程創(chuàng)建
- 88 線(xiàn)程函數(shù)傳參
- 90 pthred_detach線(xiàn)程分離
- 91 pthread_exit線(xiàn)程退出
- 92 pthread_cancel線(xiàn)程取消
- 93 線(xiàn)程取消點(diǎn)
- 95 注冊(cè)線(xiàn)程清理函數(shù)
- 97 線(xiàn)程被取消的時(shí)候執(zhí)行清理函數(shù)
- 98 pthread_cleanup_pop函數(shù)
- 99 gtk線(xiàn)程
《Linux 高級(jí)程序設(shè)計(jì)》講述了Linux操作系統(tǒng)下應(yīng)用層“一段執(zhí)行單元(進(jìn)程)對(duì)系統(tǒng)資源(CPU資源、各類(lèi)文件資源)的管理”。詳細(xì)介紹了Linux系統(tǒng)編程環(huán)境及編程工具(GCC/Makefile/GDB)、文件管理(文件屬性控制、ANSI以及POSIX標(biāo)準(zhǔn)下文件讀寫(xiě)操作、終端編程)、進(jìn)程管理(創(chuàng)建、退出、執(zhí)行、等待、屬性控制)、進(jìn)程間通信(管道、消息隊(duì)列、共享內(nèi)存)、進(jìn)程間同步機(jī)制(信號(hào)量)、進(jìn)程間異步機(jī)制(信號(hào))、線(xiàn)程管理(創(chuàng)建、退出、取消等以及屬性控制)、線(xiàn)程間同步(互斥鎖、讀寫(xiě)鎖、條件變量)、線(xiàn)程與信號(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多線(xiàn)程編程-線(xiàn)程同步機(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)),以防止其它線(xiàn)程訪問(wèn)該資源;如果該互斥鎖處于鎖定狀態(tài),默認(rèn)阻塞等待;(2)只有鎖定該互斥鎖的進(jìn)程才能釋放該互斥鎖。其它線(xiàn)程的釋放操作無(wú)效。
