首页 新闻 搜索 专区 学院

关于c#内存映射文件的同时读写的疑问

0
悬赏园豆:20 [待解决问题]

是否会出现单进程多线程同时操作同一个变量造成的不安全问题(例如加锁),多进程同时更改同一块内存是否需要类似于加锁这种操作

搜了一下类似的文章,没有提到这种情况的,如果需要锁操作的话,多进程的话you如何实现呢

猝不及防的主页 猝不及防 | 小虾三级 | 园豆:1994
提问于:2019-11-25 11:55
< >
分享
所有回答(2)
0

这是相关的参考文章

https://www.cnblogs.com/Tench/p/7710994.html

小小高 | 园豆:813 (小虾三级) | 2019-11-25 11:57

Mutex
但在linux下没啥卵用,不支持匿名Mutex。
我觉得文件读写锁定就够了,但都用文件(Filestream)了,共享内存又有什么优点。

支持(0) 反对(0) 日暮青色 | 园豆:455 (菜鸟二级) | 2019-11-25 16:53

好的,我尝试一下

支持(0) 反对(0) 猝不及防 | 园豆:1994 (小虾三级) | 2019-11-26 08:57
0

看情况,如果内存的操作是原子操作,那随便它搞。比如32位芯片4byte的是原子操作,但放到16位芯片就不是,肯定处理方式不一样。对此c#提供了一些原子性操作的函数接口。如果数据块较大,始终无法原子化操作怎么办,那么锁起来——从而达到原子化操作的目的;当然如果某些特殊情况下允许脏数据,你也可以不锁起来。

花飘水流兮 | 园豆:11974 (专家六级) | 2019-11-25 12:20

“锁起来——从而达到原子化操作的目的”
你说的实现方式也是用Mutex吗

支持(0) 反对(0) 猝不及防 | 园豆:1994 (小虾三级) | 2019-11-26 08:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册