大宝剑*_*大宝剑 9 lock-free lockless
在一些关于算法的文章中,有些使用了这个词lockfree,有些则使用了lockless.lockless和之间有什么区别lockfree?谢谢!
更新
http://www.intel.com/content/dam/www/public/us/en/documents/guides/intel-dpdk-programmers-guide.pdf
第5.2节 - "Linux*中的无锁环缓冲区",这是使用"无锁"一词的一个例子
如果算法满足以下条件,则该算法是无锁的:程序线程运行足够长的时间时,至少有一个线程取得了进展(对于某些合理的进展定义)。所有的免等待算法都是无锁的。
通常,无锁算法可以分四个阶段运行:完成自己的操作,协助进行阻塞操作,中止阻塞操作以及等待。可能同时发生的协助和堕胎使完成自己的手术变得复杂,但始终都是完成任务的最快途径。例如非阻塞算法
无锁编程是用于在不使用锁的情况下安全地操作共享数据的一组技术。有无锁算法可用于传递消息,共享列表和数据队列以及其他任务。无锁编程非常复杂。例如,所有纯功能数据结构本质上都是无锁的,因为它们是不可变的