C++ 我可以多次访问boost::interprocess::managed_shared_内存而不必反复打开它吗?
我正在使用C++ 我可以多次访问boost::interprocess::managed_shared_内存而不必反复打开它吗?,c++,boost,boost-interprocess,C++,Boost,Boost Interprocess,我正在使用boost::进程间::托管共享内存创建要跨进程共享的内存 以下是所采取的步骤: 台阶 a) Create memory. a) Open memory. b) Write to memory a) Open memory. b) Read from memory. c) Open memory. d) Read from memory. e) Open memory. f) Read from memory. g) ...... and so on and so forth!
boost::进程间::托管共享内存
创建要跨进程共享的内存
以下是所采取的步骤:
a) Create memory.
a) Open memory.
b) Write to memory
a) Open memory.
b) Read from memory.
c) Open memory.
d) Read from memory.
e) Open memory.
f) Read from memory.
g) ...... and so on and so forth!
a) Create memory.
a) Open memory.
b) Write to memory
a) Open memory.
b) Read from memory.
c) Open memory.
d) Read from memory.
e) Open memory.
f) Read from memory.
g) ...... and so on and so forth!
a) Create memory.
a) Open memory.
b) Write to memory
a) Open memory.
b) Read from memory.
c) Open memory.
d) Read from memory.
e) Open memory.
f) Read from memory.
g) ...... and so on and so forth!
实际上,open命令在性能方面非常昂贵,这被证明是我的应用程序中的一个瓶颈。为了简洁起见,许多示例在主函数中都有托管共享内存 但是,您应该使它成为相关类的成员(负责管理共享内存映射的生存期)
当然,您可以在main中将其作为局部变量保存,但随后您将被迫在任何函数调用中不断传递它。(我不建议将其设置为全局变量。或者将其设置为单例)。我们的想法应该是只打开共享资源(在本例中为内存)一次,并重复使用同一句柄/变量/对象来反复评估它 以下任何一种方法都可以:
{}
中,以确保功能范围内的局部范围你就不能…不要一次又一次地打开它吗?你的代码到底是什么样子的,到底是什么错了?我试图在没有打开的情况下使用它,但是我不被允许访问内存!胡合。谢谢你的反馈