dll(动态链接库)为什么能被很多进程共享

chgsnake 2003-04-04 09:45:48
很多文章都说,动态链接库放入内存,就可以被多个程序共享。然而,据我所知,当应用程序运行时,dll被映射到调用进程的地址空间,好像是各个进程的私有空间,这不是会有很多的拷贝么。这岂不是矛盾?
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
whoo 2003-07-08
  • 打赏
  • 举报
回复
代码是共享的(地址映射一下而已。), 数据是各自的。

dll中的全局东东不会被弄乱,因为进程间是无关的。

采用某些手法后,dll中的某些全局东东也是可以快进程的。
afc 2003-07-08
  • 打赏
  • 举报
回复
DLL中只读的部分(比如代码,const变量等)只有一份,程序要修改的部分每个进程各有一份独立的拷贝
chgsnake 2003-07-08
  • 打赏
  • 举报
回复
那么dll中的一些全局的东西不会被各个进程弄乱吧
sxmzmxh 2003-07-08
  • 打赏
  • 举报
回复
也就是说,多个进程的虚拟地址映射到相同的物理地址。
freewing 2003-07-07
  • 打赏
  • 举报
回复
各个进程有的只是一些私有的局部的东西
afc 2003-07-07
  • 打赏
  • 举报
回复
DLL加载到一个内存地址,然后通过硬件将此地址映射到各个使用此DLL的多个进程的私有空间,实际内存中只会有一份拷贝
luwenguang 2003-07-07
  • 打赏
  • 举报
回复
相同的代码可以放在 很多个格子里面啊。


dll就是一段代码,一个进程就是一个格子。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧