+ -
当前位置:首页 → 问答吧 → 利用interlockedexchangeadd实现用户态的互斥

利用interlockedexchangeadd实现用户态的互斥

时间:2010-07-31

来源:互联网

(相当于用户态的Spinlock),大家有什么想法,如何实现?
好像很难实现的样子啊,很早以前的问题了。题外话:不清楚为什么Linuz不使用Exchange而一定要使用Lock Inc这种方式,不知他怎么想的。

难不成使用:
long var=0;
interlockedexchangeadd(&var,1);

interlockedexchangeadd(&var,-1);

多使用了一次Interlocked,不但没有效率,不幸在激烈竞争时,效率更要指数下降,如果成千上万的线程(据说Linux支持线程了),可能成为“假死锁”(var很长很长时间无法回到0);

作者: folklore   发布时间: 2010-07-31

interlockedexchangeadd?
不是InterlockedCompareExchange?

作者: OwnWaterloo   发布时间: 2010-07-31

相关阅读 更多