六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 92|回复: 0

从百度的一道笔试题说线程安全

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-1-27 04:40:32 | 显示全部楼层 |阅读模式
合租的室友在帮他的一同学做百度笔试题,并拉上我和另一室友一起做。第一题是关于线程安全的:
 
<div class="quote_div">现代的处理器提供了compare-and-swap原子操作:

int compare_and_swap(int * pv, const int cv, const int nv);

即比较*pv与cv,如果相等,则把*pv值替换为nv并返回*pv原值,否则返回*pv的值。

请利用上述原子操作实现如下操作:

int inc_if_gt_zero(int * pv);

即如果*pv > 0,则把*pv加1并返回修改后的*pv,否则返回*pv。

结果要线程安全且不使用锁、信号灯、互斥量、临界区或类似机制。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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