在一些关于算法的文章中,有些使用这个词lockfree
,还有一些使用lockless
。有什么区别lockless
and lockfree
?谢谢!
Update
http://www.intel.com/content/dam/www/public/us/en/documents/guides/intel-dpdk-programmers-guide.pdf
第 5.2 节 --“Linux* 中的无锁环形缓冲区”,这是使用单词“无锁”的示例
如果一种算法满足以下条件,则该算法是无锁的:当程序线程运行足够长的时间时,至少有一个线程取得进展(对于进度的某种合理定义)。所有无等待算法都是无锁的。
一般来说,无锁算法可以分为四个阶段:完成自己的操作、协助阻塞操作、中止阻塞操作和等待。完成自己的手术由于同时进行援助和中止的可能性而变得复杂,但始终是完成的最快路径。例如非阻塞算法
无锁编程是一组无需使用锁即可安全操作共享数据的技术。有无锁算法可用于传递消息、共享数据列表和队列以及其他任务。无锁编程相当复杂。例如所有纯函数式数据结构本质上都是无锁的,因为它们是不可变的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)