随笔分类 - linux系统编程
摘要:一、管道通信 管道是一种半双工的通信方式,具有固定的读端和写端,而且只支持有血缘关系的进程之间通信。因为管道是只存在于内存中,并不属于任何的系统文件。 头文件:#include <unistd.h> 函数原型:int pipe(int pipefd[2]); 函数参数:fd[0]代表读端,fd[1]
阅读全文
摘要:1、生产者消费者模型:假设有一筐饼,这时候生产者源源不断生产饼放进饼框中,此时有三个消费者(用三个线程代替),这时,三个人都想抢饼吃,这时候,当没有饼的时候他们就应该陷入阻塞等待状态,当有饼的时候,他们就会被告知饼来了,然后竞争获取新的饼,这时候,除了加锁之外,还需要一个重要的事情,就是需要被通知到
阅读全文
摘要:1、线程同步的概念:这里说的同步并非时同时的概念,而是指协同、协助、互相配合,即按照一定的次序完成需要的动作,使程序正常运行。所谓的线程同步,指的是一个线程某个功能调用时,没有得到结果之前,该调用不返回,同时其他线程为保证数据一致性,不能调用该功能。 2、互斥量:两个线程访问同一块资源,如果不协调顺
阅读全文
摘要:线程基本概念以及优缺点: 1、线程是操作系统执行任务的最小单位,进程是操作系统分配资源的最小单位。 2、线程可以共享文件描述符表、每种信号的处理方式、当前的工作目录、用户ID以及组ID; 线程id非共享,每个线程都拥有独立的栈空间(可以将每个线程看作一个函数),error变量非共享(每个errno是
阅读全文

浙公网安备 33010602011771号