- 主题:共享内存中的环形缓冲区,1生产者1消费者,无锁方案?
要Windows和Linux都能用的,有啥成熟可靠的库吗?想用来做进程通信。
boost的interprocess和spsc_queue组合只能用在Linux下,而且没法实现32位进程与64位进程通信。
--
FROM 171.221.29.*
搜一下linux kernel kfifo
--
FROM 171.83.7.*
github上搜
--
FROM 158.140.1.*
那不如我自己写,我也就是随手一问,有人知道现成好用的不妨一试,没有也问题不大。
【 在 allegro 的大作中提到: 】
: github上搜
--
FROM 171.221.29.*
【 在 poocp 的大作中提到: 】
: 要Windows和Linux都能用的,有啥成熟可靠的库吗?想用来做进程通信。
: boost的interprocess和spsc_queue组合只能用在Linux下,而且没法实现32位进程与64位进程通信。
http://bbs.chinaunix.net/forum-23-1.html
这个坛子有很多关于无锁的讨论。就是现在快死翘翘了,往前翻翻可能能找到。
--
FROM 221.221.55.*
为什么只能在linux下用?
你换成windows_shared_memory的头文件不就是了,在windows下默认用memory mapped file模拟linux下shared memory的生存周期
【 在 poocp 的大作中提到: 】
: 要Windows和Linux都能用的,有啥成熟可靠的库吗?想用来做进程通信。
: boost的interprocess和spsc_queue组合只能用在Linux下,而且没法实现32位进程与64位进程通信。
--
FROM 183.128.166.*
32和64之间似乎没有共享内存通信的方案。
【 在 poocp 的大作中提到: 】
: 要Windows和Linux都能用的,有啥成熟可靠的库吗?想用来做进程通信。
: boost的interprocess和spsc_queue组合只能用在Linux下,而且没法实现32位进程与64位进程通信。
--
FROM 183.128.166.*
win上是没问题的,只是shared memory里面放的字段要注意一下
https://docs.microsoft.com/en-us/windows/win32/winauto/32-bit-and-64-bit-interoperability
linux上貌似也没问题
https://stackoverflow.com/questions/59649038/how-to-mmap-64-bit-address-into-32-bit-process
【 在 ziqin 的大作中提到: 】
: 32和64之间似乎没有共享内存通信的方案。
:
--
修改:z16166 FROM 123.118.186.*
FROM 123.118.186.*