- 01 系统调用的概念
- 02 Linux操作系统提供的系统调用
- 03 文件描述符
- 04 open_close函数
- 05 write函数
- 06 read函数
- 07 mycp
- 08 remove函数
- 09 系统调用与库函数关系
- 10 进程的概念
- 11 进程的状态及切换
- 12 进程控制块
- 13 进程号
- 14 创建进程fork函数
- 15 父子进程有自己独立的地址空间
- 16 子进程继承父进程缓冲区
- 17 进程的挂起
- 18 wait函数
- 19 waitpid函数
- 20 创建进程扩展
- 21 孤儿进程
- 22 进程的终止exit
- 23 注册进程退出清理函数
- 24 vfork
- 25 exec函数族简介
- 26 execl函数
- 27 execlp函数
- 28 execle函数
- 29 execv函数
- 30 execvp函数
- 31 execve函数
- 32 exec之后进程保留的属性
- 33 system函数
- 34 system函数的实现
- 35 进程间通信的概念
- 36 信号的概念
- 42 signal函数1
- 43 signal函数返回值
- 44 可重入函数
- 45 信号集的概念
- 46 sigemptyset函数
- 47 sigfillset函数
- 48 sigismember函数
- 49 sigaddset函数
- 50 sigdelset函数
- 51 信号集合的例子
- 52 信号阻塞集的概念
- 53 sigprocmask函数
- 54 无名管道的概念
- 55 无名管道的创建
- 56 无名管道通信注意点
- 57 无名管道读写特点
- 58 文件描述符概述
- 59 dup文件描述符复制
- 60 dup2文件描述符复制
- 61 复制文件描述符后新旧文件描述符特点
- 62 exec之后文件描述特点
- 63 练习expr思路
- 64 命名管道的概述
- 65 命名管道创建及读写
- 66 验证read阻塞
- 67 写进程退出导致read阻塞不住
- 68 读进程结束写进程再写命名管道写进程收到信号退出
- 69 write带阻塞
- 70 非阻塞方式打开命名管道
- 71 命名管道聊天思路
- 72 消息队列概述
- 73 ftok函数
- 74 消息队列的创建及打开
- 75 消息队列中消息的格式
- 76 msgsnd消息发送
- 77 msgrcv接收消息
- 78 msgctl消息队列控制
- 79 消息队列聊天答案讲解
- 80 共享内存的概念
- 81 shmget函数
- 82 shmat共享内存映射
- 83 shmdt共享内存解除映射关系
- 84 shmctl共享内存控制
- 85 线程的概念
- 86 共享内存例子
- 87 pthread_create线程创建
- 88 线程函数传参
- 90 pthred_detach线程分离
- 91 pthread_exit线程退出
- 92 pthread_cancel线程取消
- 93 线程取消点
- 95 注册线程清理函数
- 97 线程被取消的时候执行清理函数
- 98 pthread_cleanup_pop函数
- 99 gtk线程
《Linux 高级程序设计》讲述了Linux操作系统下应用层“一段执行单元(进程)对系统资源(CPU资源、各类文件资源)的管理”。详细介绍了Linux系统编程环境及编程工具(GCC/Makefile/GDB)、文件管理(文件属性控制、ANSI以及POSIX标准下文件读写操作、终端编程)、进程管理(创建、退出、执行、等待、属性控制)、进程间通信(管道、消息队列、共享内存)、进程间同步机制(信号量)、进程间异步机制(信号)、线程管理(创建、退出、取消等以及属性控制)、线程间同步(互斥锁、读写锁、条件变量)、线程与信号以及BSD socket编程中的TCP、UDP、原始套接口、网络服务器应用开发等内容,并对Linux系统下的音频应用程序开发做了讲解。
Linux多线程编程-线程同步机制互斥锁基本原理互斥以排他方式防止共享数据被并发修改。互斥锁是一个二元变量,其状态为开锁(允许0)和上锁(禁止1),将某个共享资源与某个特定互斥锁绑定后,对该共享资源的访问如下操作:(1)在访问该资源前,首先申请该互斥锁,如果该互斥处于开锁状态,则申请到该锁对象,并立即占有该锁(使该锁处于锁定状态),以防止其它线程访问该资源;如果该互斥锁处于锁定状态,默认阻塞等待;(2)只有锁定该互斥锁的进程才能释放该互斥锁。其它线程的释放操作无效。