CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

什么是copy-on-write?

楼主baryjim(吃饭-睡觉-打豆豆)2005-07-03 11:23:18 在 C/C++ / C++ 语言 提问

什么是copy-on-write?  
  请解释一下 问题点数:20、回复次数:14Top

1 楼eric_shenzhen(衣带渐宽终不悔,为伊消的人憔悴)回复于 2005-07-03 11:33:52 得分 0

copyright   吧,版权Top

2 楼dgysnakeking(阿三)回复于 2005-07-03 11:41:51 得分 0

有个相似的叫   CopyBeforeWrite     写入复制技术,兄台所说的不知为何物...Top

3 楼yhbttfile(小兵)回复于 2005-07-03 11:44:30 得分 8

也就是引用计数的概念中的一种重要的实现技术。  
   
  对象之间的复制只通过引用计数来表示,内部其实只有一份对象实例。一旦对象发生变化,才创建对象,然后复制原对象。  
  这可以大大提高效率。Top

4 楼ericqxg007(还有很多东西要学(卡卡一米阳光))回复于 2005-07-03 12:22:39 得分 0

不懂   mark一下Top

5 楼jiajun2001(Jagen(嘉俊))回复于 2005-07-03 14:56:53 得分 6

yhbttfile(小兵)说的对。  
  补充以下,Copy-On-Wirte中译为写时拷贝。只有在写内存的时候才复制这段内存。  
  STL中大量应用这一技术。  
  目前的操作系统Windows、Unix、Linux等等,在内存管理模块中也大量使用这种技术。  
  正是由于使用这种技术后Windows、Unix、Linux等这些操作系统不可直接关机,必须通过操作系统关机。Top

6 楼LifeAndC(蓝色忧郁)回复于 2005-07-03 14:59:47 得分 0

写时复制!Top

7 楼LordSimon(lordsimon@x.cn)回复于 2005-07-03 18:38:00 得分 0

不懂,学习Top

8 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-07-03 22:08:50 得分 0

知道了,知道了,谢谢各位,谁还有什么补充的吗?Top

9 楼jackyshaw()回复于 2005-07-03 23:13:38 得分 0

哦Top

10 楼ILPnow(多想你知道)回复于 2005-07-03 23:21:00 得分 0

不懂,了解了一下Top

11 楼woshidz(狂想曲)回复于 2005-07-04 00:22:21 得分 0

不太明白     好象有点深Top

12 楼s_topman(SQL love Linux! : ))回复于 2005-07-04 08:50:44 得分 4

我只知道在linux中,当新建一个进程时,要复制父进程的空间,但是事实上开始并不是真正这样执行,而是子进程指向父进程的地址空间,而当子进程真正执行写操作时,才会真正复制子进程空间,这样提高了效率Top

13 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-07-04 15:45:00 得分 0

windows的DLL也是这样的,他们共享数据空间,当数据改变的时候才发生真正的拷贝Top

14 楼xiao_xiao_zi(笑小子)回复于 2005-07-04 16:27:24 得分 2

举个例子  
  CString就使用了写时拷贝  
  CString   a   =   "123";  
  CString   b   =   a;  
  这时候b的内部其实指向的是a的空间;  
  b.SetAt(0,   'b');//这时会给b分配一段新的空间,然后把a的数据拷到b里,再修改b的数据Top

相关问题

  • 达人帮忙什么是non-trivial copy , non-trivial assignment
  • 请问这是什么错 socket write error?
  • v.vp?v.vp->copy():0,大家看看这个句子是什么意思,主要是?号和:是什么意思???/
  • copy constructor 和copy assignment operator 有什么区别
  • 什么时候应使用copy constructor?
  • GHOST比COPY多做了些什么?
  • 请问什么是image文件,和一个压缩文件夹有什么不同?打开后在copy到软盘上与直接写有什么区别?
  • 为什么在我的VB中 "©" 符号 显示 的是一个 "?",请问该怎么解决?
  • 是否可以在filter中使用函数?比如,我想查copy(ziduan,1,1)='2'的,为什么出错?
  • 大家来看看MSDN copy过来的例子也出错,为什么老是说"Submitted SQL statement was incomplete"

关键词

  • 拷贝
  • 内存
  • 数据
  • 技术
  • 复制
  • 进程
  • 对象
  • 空间
  • copy
  • cstring

得分解答快速导航

  • 帖主:baryjim
  • yhbttfile
  • jiajun2001
  • s_topman
  • xiao_xiao_zi

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo