Linux 共享内存多进程访问问题

Linux中fork多个进程,对同一块共享内存进行读写操作,会存在并发问题吗?比如说,共享内存中存储计算器,是否有并发时计数器少加的问题吗?

自己刚刚测试了一下,ab -n10 -c10 发现计数都是正常的,不知道这个结果是否正确?

阅读 5.2k
2 个回答

肯定会有,只要1个以上的进程或者线程想要修改同一份数据,就会需要同步,并发量少了不出错不代表没有问题 。。

猜测你的这个应用场景是一个全局请求计数, 建议搜索一下__sync_fetch_and_add函数, 该函数为gcc编译器支持的原子操作, 可以省去你非常多的编码工作.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进