进程间通信笔记 - 2

信号量
信号量一般配合其他方式一起使用,主要实现进程间的互斥与同步,而不是缓存数据。
信号量表示资源的数量,控制信号量的方式有两种原子操作:
P操作:将这个信号量减一,减一后如果信号量小于0代表资源已被占用进程需要阻塞等待。反之表明资源可用可以正常执行。
V操作:把信号量加一,加一后如果信号量大于等于0代表有阻塞的进程,于是会唤醒运行,反之代表没有阻塞的进程。
P操作用在进入共享资源之前,V操作用在进入共享资源之后,两个操作成对出现。
如果信号量初始为1代表互斥信号量,为0是同步信号量。
信号
对于异常情况下的工作模式需要用信号来通知进程。信号是进程通信间唯一的异步通信方式。
Socket
跨网络进程通信就需要Socket了。
针对 TCP 协议通信的 socket 编程模型
服务端和客户端初始化 socket,得到文件描述符;
服务端调用 bind,将绑定在 IP 地址和端口;
服务端调用 listen,进行监听;
服务端调用 accept,等待客户端连接;
客户端调用 connect,向服务器端的地址和端口发起连接请求;
服务端 accept 返回用于传输的 socket 的文件描述符;
客户端调用 write 写入数据;服务端调用 read 读取数据;
客户端断开连接时,会调用 close,那么服务端 read 读取数据的时候,就会读取到了 EOF,待处理完数据后,服务端调用 close,表示连接关闭。
针对 UDP 协议通信的 socket 编程模型
服务端和客户端初始化 socket,得到文件描述符;
服务端和客户端调用 bind,将绑定在 IP 地址和端口;
然后进行通信;
针对本地进程间通信的 socket 编程模型
绑定不是绑定地址和端口而是绑定一个本地文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值