刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

面试题

Linux进程间通信的几种方式

使用微信搜索喵呜刷题,轻松应对面试!

答案:

分析&回答

  • 管道(pipe)以及有名管道:管道可用于有亲缘关系进程间通信,有名管道克服了管道没有名字的限制,因此具有管道的所有功能之外,它还允许无亲缘关系进程间通信。
  • 信号(Signal)。
  • 报文(Message)队列(消息队列):消息队列是消息的链接表,包括Posix消息队列和System V消息队列。
  • 共享内存:使得多个进程间可访问同一块内存空间,是最快的IPC形式,往往是跟信号量结合使用,来达到进程间的同步以及互斥。
  • 信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
  • 套接字(Socket):可用于不同机器之间的进程间通信。

反思&扩展

线程间的通信

通信是指线程间通过何种机制来交换信息,在命令式编程中,线程之间的通信有两种:共享内存和消息传递。

  • 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写 - 读内存中的公共状态来隐式进行通信。
  • 在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信。

Java 的并发采用的是共享内存模型,Java 线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。

创作类型:
原创

本文链接:Linux进程间通信的几种方式

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share