z*******6 发帖数: 133 | 1 想在 windows 下处理共享内存的问题,用了 createFileMapping. 可以在不同程序间
共享数据 (比如 程序A 和B)。 请问有没有可能在 A和 B 都退出后仍然保留共享内
存的数据,这样下一次运行程序A 或B 时就不用在创建共享内存。(处理大数据) |
X****r 发帖数: 3557 | 2 另外写一个小程序C来负责创建共享内存,A或B启动它,C本身不退出。
【在 z*******6 的大作中提到】 : 想在 windows 下处理共享内存的问题,用了 createFileMapping. 可以在不同程序间 : 共享数据 (比如 程序A 和B)。 请问有没有可能在 A和 B 都退出后仍然保留共享内 : 存的数据,这样下一次运行程序A 或B 时就不用在创建共享内存。(处理大数据)
|
z*******6 发帖数: 133 | |
b******n 发帖数: 592 | 4 boost有个interprocess库可以做这个。我是在Linux上用的,你可以去看看windows到
底能不能实现,linux低下没有问题的。创建共享内存不难啊,我觉得退出以后清除是
比较安全的做法。linux下只有下次重启的时候才会自动清除(当然,你可以有个helper
程序来做清除)
【在 z*******6 的大作中提到】 : 想在 windows 下处理共享内存的问题,用了 createFileMapping. 可以在不同程序间 : 共享数据 (比如 程序A 和B)。 请问有没有可能在 A和 B 都退出后仍然保留共享内 : 存的数据,这样下一次运行程序A 或B 时就不用在创建共享内存。(处理大数据)
|
z*******6 发帖数: 133 | 5 you get the point, linux 下用了 shm/ipc
我在 porting 到 windows, 就是这个共享内存自动清除问题还没有解决,如果开一个
进程专门管理,程序结构就要改动,想看看有没有办法解决,不然
只能这样了
helper
【在 b******n 的大作中提到】 : boost有个interprocess库可以做这个。我是在Linux上用的,你可以去看看windows到 : 底能不能实现,linux低下没有问题的。创建共享内存不难啊,我觉得退出以后清除是 : 比较安全的做法。linux下只有下次重启的时候才会自动清除(当然,你可以有个helper : 程序来做清除)
|
s******e 发帖数: 431 | 6 不能map到一个文件吗?程序退出后,page到文件。程序启动再map到内存。可能不满足
你的需求。
【在 z*******6 的大作中提到】 : you get the point, linux 下用了 shm/ipc : 我在 porting 到 windows, 就是这个共享内存自动清除问题还没有解决,如果开一个 : 进程专门管理,程序结构就要改动,想看看有没有办法解决,不然 : 只能这样了 : : helper
|
b******n 发帖数: 592 | 7 boost的 windows实现保证了跟Unix一样的结果,但是不是通过ipc。windows的ipc在最
后一个process detach之后会自动destory,不用另外清除。
我最开始用了shm,后来就完全放弃了,因为shm太麻烦,用mmap要方便,也安全很多。
【在 z*******6 的大作中提到】 : you get the point, linux 下用了 shm/ipc : 我在 porting 到 windows, 就是这个共享内存自动清除问题还没有解决,如果开一个 : 进程专门管理,程序结构就要改动,想看看有没有办法解决,不然 : 只能这样了 : : helper
|
U********d 发帖数: 577 | 8 用正常的方式应该不行。
顶2楼的方法。
【在 z*******6 的大作中提到】 : 想在 windows 下处理共享内存的问题,用了 createFileMapping. 可以在不同程序间 : 共享数据 (比如 程序A 和B)。 请问有没有可能在 A和 B 都退出后仍然保留共享内 : 存的数据,这样下一次运行程序A 或B 时就不用在创建共享内存。(处理大数据)
|