有人可以帮我解决这些问题:
同一进程中的线程共享的内存(代码/数据)部分是什么(不是由不同的进程共享)?
两个进程可以共享其虚拟地址空间吗?
两个进程可以共享全局变量吗?
使用内存映射文件可以在进程之间实现哪种数据共享?
是否可以使用内存映射文件共享链接列表?还有一系列数字?
答案 0 :(得分:-1)
进程只有一个地址空间。单个进程中的所有线程都可以访问进程的所有内存。
没有。在Windows上,要跨进程边界共享内存,必须使用共享数据段或内存映射文件对象。
仅当变量存储在共享内存中时。
可以使用内存映射文件共享任何POD数据。将它视为一块原始连续字节。您可以共享通常适合字节数组的任何内容。
无法共享链接列表,因为其节点在内存中包含指向彼此的指针,并且指针不能跨进程边界使用。您必须将列表序列化为使用偏移而不是指针的平面格式。可以共享一组POD类型,如整数,是的。