腾讯面试,扯到原子操作上了,面试官问:interlock操作时,加不加volatile有什么区别

enic 2013-03-23 08:36:24
腾讯面试,扯到原子操作上了,面试官问:interlock操作时,加不加volatile有什么区别

我说不知道,这算是误导我的问法么?
当然我没告诉他我知道volatile会强制从内存刷新到cache,也不没告诉他IOS C++和MS针对volatile的处理不同。MS貌似开了指定的链接选项以后volatile会有required和release语义,也就是原子操作了。
因为感觉气氛不太对了,他不是想知道我了解什么好像在尝试问倒我,,,

泥马,我自己基础不扎实我承认,但是我回答不知道以后面试官没有其他问题了,这个算是误导我回答不出打发我走人么,,,


对了,之前有聊到interlock会锁总线,我记忆里边是锁定整个内存。但是又是问我会锁定多少内存,,,

后来直接开始问windbg怎么查内存错误,大概说了下要先找到被破坏的堆,然后找到具体被写坏的那块内存地址。然后找到使用了该地址的相关代码。
连着追问,,,最后一直盯着问怎么找到使用了该地址的相关代码,这时候我反应过来是要问倒我打发我走人了估计,应为我记忆里边能直接windbg很有把握定位这些错误的都是一方牛人了,,,(本人也就3年经验,大部分时间是非桌面开发,最近一年完全是做后台面的腾讯qq管家)

想问下各位,这块一般是怎么处理的。这个东西用语言描述可能有点麻烦,,,我一般是这样找:
1.搜索调用栈,看有没有这个地址直接作为参数
2.根据业务逻辑,和内存大小查找怀疑的对象是不是持有
3.在内存中搜索指定地址


顺便也打听下,腾讯的人3年经验左右都有这么牛逼?


此帖被抱怨,只是想了解下情况。
我自知基础很差,需要很多学习,只是想了解下是不是差到一定境界了,这么给人鄙视,,,

求拍砖,求大量鄙视,,,
知耻而后勇啊,,,
唉,,,


by the way: 今年深圳C++行情真的很差,,,
...全文
8793 60 打赏 收藏 转发到动态 举报
写回复
用AI写文章
60 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2013-03-27
  • 打赏
  • 举报
回复
难道是原子操作的意思?
赵4老师 2013-03-27
  • 打赏
  • 举报
回复
引用 44 楼 ForestDB 的回复:
真心没听过interlock
Synchronization Functions The following functions are used in synchronization. CancelWaitableTimer CreateEvent CreateMutex CreateSemaphore CreateWaitableTimer DeleteCriticalSection EnterCriticalSection GetOverlappedResult InitializeCriticalSection InitializeCriticalSectionAndSpinCount InterlockedCompareExchange InterlockedDecrement InterlockedExchange InterlockedExchangeAdd InterlockedIncrement LeaveCriticalSection MsgWaitForMultipleObjects MsgWaitForMultipleObjectsEx OpenEvent OpenMutex OpenSemaphore OpenWaitableTimer PulseEvent QueueUserAPC ReleaseMutex ReleaseSemaphore ResetEvent SetCriticalSectionSpinCount SetEvent SetWaitableTimer SignalObjectAndWait TimerAPCProc TryEnterCriticalSection WaitForMultipleObjects WaitForMultipleObjectsEx WaitForSingleObject WaitForSingleObjectEx
菜鸟程序路 2013-03-27
  • 打赏
  • 举报
回复
小弟初来,也不懂,楼主比我强,祝你好运!
huangxiaofei 2013-03-27
  • 打赏
  • 举报
回复
引用 41 楼 cl_gamer 的回复:
vczh.Iskandar<vczh@163.com> 21:19:16 当然我没告诉他我知道volatile会强制从内存刷新到cache,也不没告诉他IOS C++和MS针对volatile的处理不同。MS貌似开了指定的链接选项以后volatile会有required和release语义,也就是原子操作了。 这句话是错的 volatile从来不会枪支从内存刷新到cache VCZH.粉丝数组[0]<errorcpp@qq.com> 21:19:27 vczh.Iskandar<vczh@163.com> 21:19:31 也没有required和release的语义 这些都是C#才有的 C++没有 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:19:42 MS有个编译选项 会让他有require 这个还是在本群学习到的 vczh.Iskandar<vczh@163.com> 21:20:09 选项一般没办法让你随便改 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:20:11 http://msdn.microsoft.com/en-us/library/vstudio/12a04hfd.aspx vczh.Iskandar<vczh@163.com> 21:20:16 而且这样做是很危险的 黄小非(331745659) 21:20:16 学习学习 vczh.Iskandar<vczh@163.com> 21:20:19 一旦换了个选项 然后别人用出问题来了 根本无从下手 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:21:10 囧,,, 黄小非(331745659) 21:21:15 最后确定那个面试官还是要故意为难你哇? VCZH.粉丝数组[0]<errorcpp@qq.com> 21:21:20 我这次去腾讯 给打击了反正 感觉上是 膜拜pongba!(1322085842) 21:21:31 悲剧呀 vczh.Iskandar<vczh@163.com> 21:21:37 话说 进行interlocked操作的时候 膜拜pongba!(1322085842) 21:21:42 也考数据结构那些吗? 黄小非(331745659) 21:21:50 企鹅这么NB vczh.Iskandar<vczh@163.com> 21:21:53 加不加volatile我认为唯一的作用可能是 值在寄存器里面没给刷回来有可能就会有racing condition 膜拜pongba!(1322085842) 21:22:10 不过能到面试也是有一定实力的 黄小非(331745659) 21:22:17 UP vczh.Iskandar<vczh@163.com> 21:22:55 interlock会锁整个内存吗 应该只有总线把,因为最多也就同步一下大家的cache VCZH.粉丝数组[0]<errorcpp@qq.com> 21:23:08 记忆中是 vczh.Iskandar<vczh@163.com> 21:23:44 话说我查找内存错误的方法是这样的 黄小非(331745659) 21:23:45 @VCZH.粉丝数组[0] 你面的是腾通的什么职位? vczh.Iskandar<vczh@163.com> 21:23:58 首先我会有详细的unittest来保证一般情况下不会出现问题 于是如果出现了 我就可以用二分查找法 每次干掉diff里面的一部分 跑test logn时间复杂度锁定目标(逃 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:24:30 这就是我想吐槽的 vczh.Iskandar<vczh@163.com> 21:24:33 有一次hook api的时候同事把他妈的api声明错了 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:24:34 qq管家 vczh.Iskandar<vczh@163.com> 21:24:38 然后stack整个都乱掉了 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:24:38 普通开发 vczh.Iskandar<vczh@163.com> 21:24:43 他妈的只能这么找 黄小非(331745659) 21:25:29 qq管家需要问到这种问题么》 VCZH.粉丝数组[0]<errorcpp@qq.com> 21:29:37 我感觉他是不想理我 入群求贞操(8030903) 21:30:05 为啥 vczh.Iskandar<vczh@163.com> 21:30:38 你看你这种就是没底气 我的一个同学去疼讯 去网易面试 跟面试官聊这聊着 “我他妈腾讯已经拿到offer了,我不怕你们不给我” 御虚舟北(314969051) 21:31:02 哈 vczh.Iskandar<vczh@163.com> 21:31:15 后来他当然被拒了,然后去了CMU(不是@Yong 入群求贞操(8030903) 21:31:30 cmu vczh.jeffchen(110086478) 21:31:32 那是有实力啊 御虚舟北(314969051) 21:31:36 哟, 哟西 入群求贞操(8030903) 21:31:37 是啥 未命名(755183957) 21:31:39 那是有实力啊 黄小非(331745659) 21:31:41 “后来他当然被拒了......” 御虚舟北(314969051) 21:31:53 因为他秒了面试官 未命名(755183957) 21:31:57 十动然拒 黄小非(331745659) 21:32:05 是,面试官被鄙视了
居然看到了我的名字.....激动一下
gunsand 2013-03-27
  • 打赏
  • 举报
回复
引用 52 楼 zpcandzhj 的回复:
引用 30 楼 hot119119163 的回复:tx这种大公司,大部分都是一些能力平平,混日子的程序员,本身懂点又不是很多,自身很有优越感,很正常的。要不怎么叫腾讯养老院呢,谁有能力的人会窝在哪里去养老?靠,技术能力强的人不是死了都想进IT名企吗?
说不好 每人能力不太一样 不过个人感觉想做的和深入怎么也要5年经验吧 虽然工作5年的菜鸟也很多.
程猿薇茑 2013-03-26
  • 打赏
  • 举报
回复
引用 30 楼 hot119119163 的回复:
tx这种大公司,大部分都是一些能力平平,混日子的程序员,本身懂点又不是很多,自身很有优越感,很正常的。要不怎么叫腾讯养老院呢,谁有能力的人会窝在哪里去养老?
靠,技术能力强的人不是死了都想进IT名企吗?
jingweikong 2013-03-26
  • 打赏
  • 举报
回复
赵老师是谁,没听说过。
善若止水 2013-03-26
  • 打赏
  • 举报
回复
不是你的技术不行,是面试官在故意的刁难你。把你问倒了,工资就可以降下来了。这是面试官惯用的做法
汗晕倒 2013-03-26
  • 打赏
  • 举报
回复
今年深圳C++行情真的很差,,,
liushengbing 2013-03-26
  • 打赏
  • 举报
回复
引用 43 楼 u010012351 的回复:
引用 21 楼 liushengbing 的回复:第二个问题 第一步 配上调试符号 gflags 开 ust 第二步 找到分配堆栈 下数据断点 怎么找损坏的堆??
小的程序使用pagehep 大的用 /p /enable 不过一般开堆校验就可以了 会自动触发异常
wangjieest 2013-03-26
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
wohuiwohuiyuan 2013-03-26
  • 打赏
  • 举报
回复
腾讯 压根不给我机会会
  • 打赏
  • 举报
回复
我也不懂,volatile没用过,interlock没听说过,核心编程里的?
有新工作否 2013-03-26
  • 打赏
  • 举报
回复
我现在学的是c++基础和STL,怎么看不懂这两个词。。蛋疼,,,
He-Chuan 2013-03-26
  • 打赏
  • 举报
回复
今年怎么it行业都不景气啊。
Air_zY 2013-03-26
  • 打赏
  • 举报
回复
根本看不懂在说什么
anhui11anhui 2013-03-26
  • 打赏
  • 举报
回复
引用 50 楼 shisi 的回复:
今年深圳C++行情真的很差,,,
从哪里说起啊?
hot119119163 2013-03-26
  • 打赏
  • 举报
回复
所以程序员有出息的人很少,但是有出息的人,又是行业精英,程序做多了容易有惰性。不要被这种惰性支配自己
xiaopohaibebo 2013-03-25
  • 打赏
  • 举报
回复
加载更多回复(40)

64,642

社区成员

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

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