分类: 进程/线程间通信

5 篇文章

Linux C——进程间通信
通信方式 1.无名管道 2.有名管道 3.信号 4.共享内存 5.消息队列 6.信号灯集 7.套接字 无名管道 特点 1.只能在具有亲缘关系的进程间通信 2.半双工的通信方式,具有固定的读端fd[0]和写端fd[1] 3.管道可以看成是一种特殊的文件,对于它的读写可以使用文件IO如read、write函数. 4.管道是基于文件描述符的通信方式。当一…
Linux C——线程同步和线程互斥
线程同步 概念 线程同步是指多个线程在同一时间访问同一资源时,为了保证数据的正确性和一致性,需要对线程的执行顺序进行控制,以保证数据的完整性和正确性。 信号量 信号量的概念 信号量是一个非负整数,其值代表系统中某一资源可供使用的数量,由信号量决定线程是继续执行还是阻塞等待。 信号量是一个受保护的值,只能通过三种方式来访问:初始化、P操作(申请资源)…
Linux C——线程
线程的概念 线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程,这些线程共享进程的资源,如内存空间和文件描述符,但每个线程有自己的栈和寄存器状态。 进程和线程的异同 相同点: 都为系统提供并发执行的能力 不同点: 资源和调度:进程是系统资源分配的最小单位,线程是资源调度的最…
Linux C——进程相关函数
创建进程 fork() 定义: pid_t fork(void); 功能: 在当前的进程中,创建一个子进程 返回值: 成功: 在父进程中:返回子进程的进程号(>0) 在子进程中:返回值为0 失败:-1,并设置errno 特点 1.子进程几乎拷贝了父进程的全部内容。包括代码、数据、系统数据段中的pc值、栈中的数据、父进程中打开的文件等;但它们的…
Linux C——进程
程序和进程区别 程序: 编译好的可执行文件; 存放在磁盘上的指令和数据的有序集合; 程序是静态的,没有任何执行概念。 进程: 一个独立的可调度的任务; 执行一个程序所分配的资源的总称; 进程是程序的一次执行过程; 进程是动态的,包括创建、调度、执行、消亡。 进程特点 1.系统会为每个进程分配0-4g的虚拟空间,其中0-3g是用户空间,每个进程独有;…