当前位置:首页 > 经验 >

说说常见的几种通信方式的特点(现代通信方式有几种及特点)

来源:原点资讯(www.yd166.com)时间:2024-03-15 20:49:18作者:YD166手机阅读>>

前言

进程间的通信方式,其实我们一直在用它,但是我们都不会去注意它。如果碰到面试官问你知道多少种进程间的通信方式,估计很多人都会有点懵。今天我们就来总结下进程间的通信方式有哪些。

管道

管道,英文为pipe。这是一个我们在学习Linux命令行的时候就会引入的一个很重要的概念。它的发明人是道格拉斯.麦克罗伊,这位也是UNIX上早期shell的发明人。他在发明了shell之后,发现系统操作执行命令的时候,经常有需求要将一个程序的输出交给另一个程序进行处理,也因此,管道应运而生了。

管道可以分为两类:匿名管道和命名管道。

常见的Linux命令 "|" 其实就是匿名管道,表示把一个进程的输出传输到另外一个进程,如:

echo "Happyjava" | awk -F 'j' '{print $2}' # 输出 ava

另外,我们可以通过 mkfifo <pipename> 命令创建一个命名管道,如:

mkfifo pipe

一个进程往管道输入数据,则会阻塞等待别的进程从管道读取数据:

说说常见的几种通信方式的特点,现代通信方式有几种及特点(1)

如果我另外一个窗口没有执行 cat < pipe 命令,则左边的窗口(echo 'Happyjava' > pipe)会一直阻塞。

消息队列

注意,此消息队列不是我们常用的MQ,如kafka,rabbitmq,rocketmq等。

消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。

使用消息队列进行进程间通信,可能会收到数据块最大长度的限制约束等,这也是这种通信方式的缺点。如果频繁的发生进程间的通信行为,那么进程需要频繁地读取队列中的数据到内存,相当于间接地从一个进程拷贝到另一个进程,这需要花费时间。

共享内存

共享内存这个通信方式就可以很好着解决拷贝所消耗的时间了。系统加载一个进程的时候,分配给进程的内存并不是实际物理内存,而是虚拟内存空间。那么我们可以让两个进程各自拿出一块虚拟地址空间来,然后映射到相同的物理内存中,这样,两个进程虽然有着独立的虚拟内存空间,但有一部分却是映射到相同的物理内存,这就完成了内存共享机制了。

信号量

共享内存最大的问题是什么?没错,就是多进程竞争内存的问题,就像类似于我们平时说的线程安全问题。如何解决这个问题?这个时候我们的信号量就上场了。

信号量的本质就是一个计数器,用来实现进程之间的互斥与同步。例如信号量的初始值是 1,然后 a 进程来访问内存1的时候,我们就把信号量的值设为 0,然后进程b 也要来访问内存1的时候,看到信号量的值为 0 就知道已经有进程在访问内存1了,这个时候进程 b 就会访问不了内存1。所以说,信号量也是进程之间的一种通信方式。

Socket

这个就是我们一直在用的进程间的通信方式了,如我们的微信APP跟微信服务器通信,其实就是使用的Socket套接字进行通信的。

总结

这里总结下,进程(Linux)间的通信方式有:

1、管道

2、消息队列

3、共享内存

4、信号量

5、Socket

原创声明

本文首发于头条号【Happyjava】,欢迎转载,但须保留此段声明。

关注获取学习资料

关注我,私信【电子书】,【视频】,即可获取大量优质电子书和大数据、kafka、nginx、MySQL等视频资料

,

栏目热文

三种通信方式的特点(常见的几种通信方式的特点)

三种通信方式的特点(常见的几种通信方式的特点)

上一篇文章我们讲了为什么电工会觉得PLC通信难,并且和大家一起了解了通信的分类,并详细讲解了串行通信和并行通信的区别及各...

2024-03-15 21:14:50查看全文 >>

常见通信方式有哪几种(三种通信方式的特点)

常见通信方式有哪几种(三种通信方式的特点)

我们都知道,在一般情况下我们会使用串口进行通讯,但是这种串口只适合连接2个设备之间,因此存在很多不方便之处(比如我们进行...

2024-03-15 21:19:14查看全文 >>

五种通信方式分别是啥(现在常用的通信方式有什么)

五种通信方式分别是啥(现在常用的通信方式有什么)

手机通讯技术,简单来说,就是允许我们的手机设备通过无线电波与远程的基站以及整个通信网络进行交互的技术。以下是目前‬一些主...

2024-03-15 21:09:39查看全文 >>

和平精英国服雷神称号(和平精英怎么获得雷神称号教程)

和平精英国服雷神称号(和平精英怎么获得雷神称号教程)

对于一些喜欢玩吃鸡的玩家而言,肯定听说过韦神。他是4AM的老板,也是队伍的首发。由于喜欢在赛场上使用手雷,并且打出相当不...

2024-03-15 21:11:04查看全文 >>

和平精英怎么获得雷神成就(和平精英的雷神怎么领取)

和平精英怎么获得雷神成就(和平精英的雷神怎么领取)

在和平精英这款游戏当中其实存在很多小技巧,比如腰射、堵桥、火力车等操作技巧,都是大神必须会的。而投掷道具也有相关的使用技...

2024-03-15 21:20:48查看全文 >>

通信的基本方式有哪两种(现在常用的通信方式有哪些)

通信的基本方式有哪两种(现在常用的通信方式有哪些)

水下通信。水下通信:在科技日益发展的今天,我们的通信方式已经覆盖了陆地、天空乃至太空,然而占据地球表面大部分面积的水域,...

2024-03-15 21:24:14查看全文 >>

常见的现代通信方式有哪些(现代主要通信方式)

常见的现代通信方式有哪些(现代主要通信方式)

互联网的快速发展导致了对实时通信技术需求的增加,加强了客户端和服务器之间的通信,并对依赖于即时通信和直播的应用程序、界面...

2024-03-15 21:29:30查看全文 >>

当今三种通信方式(四种通信方式)

当今三种通信方式(四种通信方式)

金融界2024年2月28日消息,据国家知识产权局公告,深圳市三旺通信股份有限公司申请一项名为“一种RS485、RS422...

2024-03-15 20:41:54查看全文 >>

现代常用的通信方式五种(现代的通信方式有哪些)

现代常用的通信方式五种(现代的通信方式有哪些)

互联网是我们生活中不可或缺的一部分,它让我们能够获取信息,交流沟通,娱乐消遣,创造价值。但是,你是否知道互联网背后的一些...

2024-03-15 21:30:19查看全文 >>

通信可以分为哪三种通信方式(现代常用的通信方式有哪些)

通信可以分为哪三种通信方式(现代常用的通信方式有哪些)

大家好,在消防系统中我们经常会遇到CAN、485、232三种通讯方式和叫法,那么它们有什么区别作用呢?今天我们一起学习和...

2024-03-15 20:42:13查看全文 >>

文档排行