回复: 12
跳转到指定楼层
上一主题 下一主题
收起左侧

给你一个原子操作的compareAndSwap函数,让你实现一个线程安全的Stack类

全局:

2020(7-9月) 码农类General 本科 全职@microsoft - 猎头 - Onsite  | | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
面的是微软的Senior Developer。事情已经过去几个月了,本来,当场没答上,被fail了,觉得是自己水平不够,最近我细挖了一下,才发现面试者(一个印度MM)出题的用心险恶。


题目看似很简单,“给你一个原子操作的compareAndSwap函数,让你实现
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
l人么。硬做当然也可以,我拿compareAndSwap做把锁总可以吧?但性能呢?不然呢?

诚请C++的高手中的高手,帮忙解答本题。谢谢!

评分

参与人数 4大米 +8 收起 理由
zea7ot + 3 给你点个赞!
MiKaMi3 + 2 给你点个赞!
BregmanDiverge + 2 给你点个赞!
听说地里有黄金 + 1 运道不好,给个米安慰一下。

查看全部评分


上一篇:tiktok挂经
下一篇:分贴(七)骨骼蠡口分类整理之Graph图
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

参与人数 1大米 +2 收起 理由
MiKaMi3 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
djw612 2021-1-1 07:23:49 | 只看该作者
全局:
面试不需要一步答到完美,主要是看你能做到哪一步吧?
我觉得你起手写个把cas当锁的做法也ok,她会问any improvement,你提出这种做法的问题所在(比如你说的性能),然后提到aba problem,继续聊怎么解决就行了。
distributed system课程里教的时候也是分成不同版本的实现的。
lz是不是面试的时候没有给出第一个基础解答,所以才挂了?
回复

使用道具 举报

推荐
 楼主| Dongfang_a 2021-1-1 15:40:26 | 只看该作者
全局:
听说地里有黄金 发表于 2021-1-1 14:03
应该是不用的吧。这个函数面试官已经帮你实现了,你可以直接调用。如果你一定要自己实现的话也可以,可以 ...

谢谢加米,我找到了Java的版本,https://www.geeksforgeeks.org/lock-free-stack-using-java/

相对C++的版本,因为已经做了很多封装,容易太多了。

评分

参与人数 1大米 +2 收起 理由
MiKaMi3 + 2 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| Dongfang_a 2021-1-1 07:44:19 | 只看该作者
全局:
就像我之前说的,java很难实现这个compareAndSwap,因此我的回答的思路混乱,可能实现了几个功能,但肯定不是要求的答案。
回复

使用道具 举报

🔗
lz9527 2021-1-1 07:54:48 | 只看该作者
全局:
到底是实现compareAndSwap
还是实现stack
回复

使用道具 举报

🔗
 楼主| Dongfang_a 2021-1-1 12:23:16 | 只看该作者
全局:
你得先写一个java版的compareAndSwap,然后才能写Stack不是么。
回复

使用道具 举报

全局:
运道不好,给个米安慰一下。
回复

使用道具 举报

全局:
她给的这个c++的compareandswap本身就有race不是atomic的
回复

使用道具 举报

🔗
 楼主| Dongfang_a 2021-1-1 18:03:11 | 只看该作者
全局:
violetjasmine 发表于 2021-1-1 16:22
她给的这个c++的compareandswap本身就有race不是atomic的

这个只是内部原理的示范,compareAndSwap本质上是x86的一条指令: LOCK CMPXCHG
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表