. 哪些方法可以避免或减少锁的使用?

peng_shihai 2008-11-02 04:42:16
问题1: 哪些方法可以避免或减少锁的使用?
问题2: release版本的可执行程序为什么非常大?
问题3: 使用C++赋值运算符应注意什么地方?
高手请回答,谢谢!!!!!!
...全文
1421 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fallening 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zmlovelx 的回复:]
1:无资源竞争时
2:是不是使用静态连接了  表态连接的话库代码会集成到程序中就比较大了
问题3: 使用C++赋值运算符应注意什么地方?
使用的话没啥特别要注意的吧
重载的话  要注意如果有涉及到内存动态申请,旧的空间要注意释放检查自赋值等
具体可参见自实现的String
C/C++ codeString&String::operator=(constString&rhs)
  {if(this==&rhs)//检查自赋值return*this;
  delete []m_data;//删除原来的数据,新开一块内存…
[/Quote]

补充一点,这个operator=的实现最好用copy swap手法,面试的时候可能有加分
yance 2008-11-03
  • 打赏
  • 举报
回复
第一个问题再补充一下:还可以采用多缓冲池的方法
peng_shihai 2008-11-03
  • 打赏
  • 举报
回复
这其实是笔试题,大家研究研究
peng_shihai 2008-11-02
  • 打赏
  • 举报
回复
还有更多的解释吗?
yance 2008-11-02
  • 打赏
  • 举报
回复
1.尽量少竞争
2.合理安排系统资源申请顺序

第二个问题:
Realese版本都是静态链接,里面已经链接了很多库文件;

第三个
注意指针和引用的区别;
注意资源的分配,其中涉及浅拷贝和深拷贝
peng_shihai 2008-11-02
  • 打赏
  • 举报
回复
不过能具体点吗?
peng_shihai 2008-11-02
  • 打赏
  • 举报
回复
谢谢
帅得不敢出门 2008-11-02
  • 打赏
  • 举报
回复
1:无资源竞争时
2:是不是使用静态连接了 表态连接的话库代码会集成到程序中就比较大了
问题3: 使用C++赋值运算符应注意什么地方?
使用的话没啥特别要注意的吧
重载的话 要注意如果有涉及到内存动态申请,旧的空间要注意释放检查自赋值等
具体可参见自实现的String

String& String::operator =(const String &rhs)
  {
  if ( this == &rhs) //检查自赋值
  return *this ;
  delete []m_data; //删除原来的数据,新开一块内存
  m_data = new char[strlen(rhs.m_data) + 1];
  strcpy(m_data,rhs.m_data);
  return *this ;
  }


64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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