进程与线程
文章目录 进程与线程 进程通信 无名管道: 命名管道:FIFO 消息队列: 信号量: 共享内存: Socket通信: 线程之间的同步 互斥锁:互斥锁就是一种锁机制 条件变量 读写锁 自旋锁 信号量 总结: 进程与线程 概念:什么是线程:是操作系统能够进行运算调度的最小单位。什么是进程:是计算机中某一次数据集合的运行活动,是操作系统分配资源的最小单位。线程依赖于进程,进程就是线程的容器。 上面的描述比较官方,我的理解就是:想要通过计算机来完成某件事件那么你就得有一个进程来帮助你完成这个任务,也就是说,进程等价于利用计算机完成任务的一种手段,操作系统会为进程去分配各种资源,内存什么的,那么线程就是把进程分配成一个个小任务去执行,也就是说是进程执行的最小单位。 两个问题: 进程就是一个个跑在操作系统上的程序,那么如果想让两个进程或者多个进程之间通信怎么办? 线程是进程运行的最小单位,那么如果两个线程用到了同一个资源,怎么进行同步,否则这个资源的使用就乱套了 也就是说:进程要解决通信问题,否则就是单击小程序,线程要解决同步问题,也就是资源共享在线程中的问题。 进程通信 在Linux中进程通信有六种基本的方式: 无名管道: 是一种不属于任何文件系统的特殊文件,可以使用read和write 原型 #include <unistd.h>2 int pipe(int fd[2]); // 返回值