[应用相关] 通信方式

[复制链接]
781|17
 楼主| handleMessage 发表于 2020-6-29 21:02 | 显示全部楼层 |阅读模式
操作系统中任务之间通信的方式有哪些?
bbapple 发表于 2020-6-29 21:08 | 显示全部楼层
看到宏晶的**吧,有满足你要求的
feiqi1 发表于 2020-6-29 21:08 | 显示全部楼层

说说我熟悉一点的   Linux

通信就是说进程之间传递数据。常见的方法有   pipe(管道),FIFO(命名管道),socket(套接字),SysVIPC   的   shm(共享内存)、msg   queue(消息队列),mmap(文件映射)。以前还有   STREAM,不过现在比较少见了(好像)。
androidbus 发表于 2020-6-29 21:12 | 显示全部楼层
同步的意思是说,让不同进程能够在同时到达一个已知的特定状态之前等待另一方的执行。Linux   下常见的同步方法有SysVIPC   的   sem(信号量)、file   locking   /   record   locking(通过   fcntl   设定的文件锁、记录锁)、futex(基于共享内存的快速用户态互斥锁)。针对线程(pthread)的还有   pthread_mutex   和   pthread_cond(条件变量)。
除了这些特定的同步对象之外,还有一些同步方法是与通信方法不可分离的,包括:对   pipe/FIFO/socket   和   msg   queue   的阻塞等待、对子进程退出事件的等待(wait族)、对线程退出时间的等待(pthread_join)
litengg 发表于 2020-6-29 21:12 | 显示全部楼层
同步对象有   Mutex   和   EventObject,Semaphore   信号量应该也有只是记不得。另外很重要的一个就是   Windows   Message,应该是高阶的、经过封装的同步方式,但是非常好用。IOCP、异步   socket   和窗口信息都是   Windows   Message   传递的。
qiangweii 发表于 2020-6-29 21:16 | 显示全部楼层
我觉得任务间的同步与通信是有点难
shashaa 发表于 2020-6-29 21:17 | 显示全部楼层
通常包括: 共享内存,数据的简单共享。
xia00 发表于 2020-6-29 21:20 | 显示全部楼层
交换信息的方式一般采 用: 单向同步或通信。
hfdy01 发表于 2020-6-29 21:21 | 显示全部楼层
操作系统可以有不同的信号量
CallReceiver 发表于 2020-6-29 21:25 | 显示全部楼层
任务间通信的机制是消息
boy1990 发表于 2020-6-29 21:25 | 显示全部楼层
三种任务通信方式:信号量、消息邮箱和消息队列。
sourceInsight 发表于 2020-6-29 21:28 | 显示全部楼层
可以在内存中创建一个存储空间作为该数据的缓冲。。
wanglaojii 发表于 2020-6-29 21:29 | 显示全部楼层

信号量 互斥锁也可以。
laozhongyi 发表于 2020-6-29 21:33 | 显示全部楼层
所有的嵌入式操作系统一般都会提供许多任务间通信的方法。。
Edisons 发表于 2020-6-29 21:33 | 显示全部楼层
信号量其实就是一种通过数字大小来实现限制资源使用的一种机制
_gege 发表于 2020-6-29 21:37 | 显示全部楼层
使用定义的信号量扣消息邮箱完成
Listate 发表于 2020-6-29 21:38 | 显示全部楼层

通过消息通信的二进制信号量
Mozarts 发表于 2020-6-29 21:42 | 显示全部楼层
楼上有几位都说了,主要是信号量的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

1689

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部