进程通信与进程同步某种程度上的总结

进程通信与同步的一些知识

来聊一下进程的通信与同步

首先我们回顾一下进程与线程的关系与差别

1.进程是资源分配的最小单位,而线程依赖于进程存在
每个进程至少拥有一个线程,每个线程都会依赖于一
个进程,线程共享进程被分配到的资源 
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程

2.线程是cpu给与算力的最小单位,线程的切换效率非常高
某进程内的线程在其他进程不可见

进程通信

进程通信更多的是保证一种状态,进程之间彼此有信息进行交换的时候进行信息交互的手段,包括不限于

1.套接字	
套接字socket也是一种进程间通信机制,与其他通信机制不同的是,
它可用于不同机器间的进程通信

2.共享内存
共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区,最快的
IPC方式,因为进程执行了对内存的直接读取,因为多个进程可以同时操作,
所以需要进行同步

3.管道
它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端,并且
只有有父母亲缘的进程之间可以使用

4.命名管道
可以在无关的进程之间进行通信

5.互斥
信号量的特殊情形,计数器个数的允许限制为1的时候就实现了互斥

6.信号量 	
信号量(semaphore)与已经介绍过的 IPC 结构不同,它是一个计数器。
信号量用于实	现进程间的互斥与同步,而不是用于存储进程间通信数据

7.消息队列
消息队列,是消息的链接表,存放在内核中。一个消息队列由一个标识符(即队列ID)
来标识,可以实现消息的随即查询哦

进程同步

进程间同步就是在某些情况下执行并发的情形下,需要规定一定的进程执行顺序,这种情况下就需要进程间协调同步了,同步的方法包括但不限于

1.临界区
对于某一种资源当前只允许一个线程访问,而其他同进程中的线程则要等待,
这个过程是互斥的,注意临界区限制了统一进程中不同线程对于资源的访问
但是互斥则是对应了不同进程中的不同线程对于同一资源的访问

2.信号量
对于一个资源允许多个进程同时访问,但是由信号量这个计数器来进行约束

3.互斥
信号量的特殊情形

4.事件
用来通知线程有一些事件已发生,从而启动后继任务的开始,事件对象通
过通知操作的方式来保持线程的同步,并且可以实现不同进程中的线程同步操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值