Linux多线程——条件变量 为什么需要条件变量 在多线程编程中仅使用互斥锁来完成互斥是不够用的,如以下情形: 假设有两个线程 t1 和 t2, 需要这个两个线程循环对一个共享变量 sum 进行自增操作,那么 t1 和 t2 只需要使用互斥量即可保证操作正确完成,线程执行代码如所示: pthread_mutex_t sumlock=PTHREAD_MUTEX-INITIALIZER; void *t1t2(void)...
Linux多线程 目录 一、Linux多线程概述 什么是线程 线程和进程的关系 为什么要使用多线程 二、线程管理 线程ID 创建线程 终止线程 连接与分离 1、线程分离 2、线程连接 3、示例代码 线程属性 1、属性对象 2、线程状态 3、线程栈 4.示例代码 一、Linux多线程概述 什么是线程 线程是包含在进程内部的顺序执行流,是进程中的实际运作单位,也是系统...
Linux多线程——互斥量 目录 临界区 什么是互斥量 创建与销毁 1.创建互斥量 2.销毁互斥量 加锁与解锁 临界区 在计算机系统中有许多共享资源不允许用户并行使用。例如打印机,如果它同时进行两份文档打印,它的输出就会产生交错,从而都无法获得正确的文档。像打印机这样的共享设备被称为“排它性资源”,因为它一次只能由一个执行流访问。执行流必须以互斥的方式执行访问排它性资源的代码 临界区是必须以互斥方式执行的代...
Linux的文件I/O操作 文件I/O常用头文件 #include <sys/types.h> //定义数据类型,如ssize_t等 #include <fcntl.h> //定义open,create等函数原型,创建文件权限的符号常量S_IRUSR等 #include <unistd.h> //定义read,write,close,lseek等函数原型...
GDB图形前端DDD DDD是一个简洁的GDB图形前端,可以在图形界面下进行GDB调试 安装DDD: 输入下列命令进行安装: 安装后输入ddd即可启动DDD程序,DDD主界面如下、 DDD 的主界面包含菜单栏、快捷按钮栏、源码窗口、控制台窗口等部分。 当 DDD 装载应用程序后,会在源码窗出现一个 GDB 命令工具栏 DDD的基本用法: 1.打开终端,编译程序,生成带调试信息的可执行文件a ...