• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

同一个共享内存可以被多个进程读取么

汉云 2019-03-18 浏览量:2627

同一个共享内存可以被多个进程读取么

Linux下,只是读取数据,并不写。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以是可以的,要使用信号量做一个互锁的机制,不要同时进行读写的操作比较好
    • 发布于 2019-03-20
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:14
  • 应该可以吧,共享内存的并发阻塞机制是通过软件手动读取和写入设备锁来实现的。你不写入设备锁直接读取也是可以的,但是不能保证读到的数据一定准确,甚至可能在读取期间被修改了。
    • 发布于2019-03-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以,用那种读写锁,只锁写入,不锁读取

    驱动里面有用到这个东西

    • 发布于2019-03-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,但是要用互锁,防止读写出错
    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是可以的,但需要采取特殊的机制。

    方法1: 共享内存的方法。

    此外,如果你仅仅是需要互相通信,获取共有的数据,其实还可能有其他模式:

    其他方法:域套接字、命名管道 等等

    要看整体到底有什么需要,主要实现什么目的。

    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 同一个共享内存是可以被读取的,但是进程的私有空间不行
    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果要考虑高可靠性的话,那么采集程序可以单独一个进程,然后通过MOM,如ActiveMQ之类的用持久方式传送数据,可以广播也可以点对点,也支持分布式。监听程序两个,一个显示一个保存至数据库。这样的话只要考虑采集程序的高可靠性就可以了,因为如果采用持久方式发送数据的话,对方没有接收到数据的时候是会保存下来的。
    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 是可以同时读取的,但是要在写完成后才可以读的,否则数据不同步了
    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是要进行同步后才可以读取的,否则你读着读着数据就变化 了
    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 是可以的,只要 是不同时进行写入的话,是可读的
    • 发布于2019-03-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 共享内存数据可以被多个进程读取数据;注意到互锁,不同时读就行。

    • 发布于2019-03-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

同一个共享内存可以被多个进程读取么