多线程编程
文章平均质量分 96
李兆龙的博客
Distributed Systems & NoSQL & Linux Kernel / eBPF & Chaos Engineering
展开
-
Userspace RCU的使用与原理
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。所讨论的内核版本为2.6.26。引言我们先来看看维基对于RCU的描述:In computer science, read-copy-update (RCU) is a synchronization mechanism that avoids the use of lock primitives while multiple thre原创 2021-04-08 09:53:54 · 1506 阅读 · 2 评论 -
Observer之谬何在?
引言原创 2020-02-09 22:13:32 · 336 阅读 · 2 评论 -
future_error详解
引言遇到这个问题以后第一次没有得到解答 随后经测试和查阅资料知道了它的由来 希望能有相同问题的朋友能得到帮助原创 2020-01-24 15:38:59 · 3829 阅读 · 0 评论 -
自旋锁与互斥锁
互斥锁(mutex)当一个线程试图锁定一个互斥锁而没有成功时,由于该互斥锁已经被锁定,它将进入睡眠状态,并立即允许另一个线程运行,它将会立即睡眠直到被唤醒,当它睡眠前的上锁的线程解锁时,多个沉睡的线程会竞争锁,得到锁的话会被唤醒.自旋锁(spin-lock)当一个线程使用自旋锁锁定没有成功的时候,它将不断的尝试锁定,直到锁定成功;因此,自旋锁不允许其他线程代替它,但是,一旦当前线程的被分配的...原创 2020-01-24 14:37:00 · 429 阅读 · 0 评论 -
我们该如何搞定死锁避免?
文章目录引言死锁是什么死锁的产生死锁避免固定顺序获取锁层次锁层次锁原理C++实现try_lockstd::lock鸵鸟算法引言正如 Herb Sutter所言 “Free lunch is over.”,程序员坐等处理器升级而提升程序的效率的时代已经过去,随着多核机器的发展,软件要想提升效率,必须由程序员去设计高效的软件其可以并行执行多个任务以提升效率,听起来是个不错的提升效率的方法,但那不是...原创 2020-01-18 23:06:52 · 577 阅读 · 0 评论 -
为什么只有atomic_flag是保证无锁的
引言原创 2020-01-18 20:51:15 · 758 阅读 · 0 评论 -
std::unique_lock的灵活性体现在哪里
引言原创 2020-01-18 15:09:11 · 341 阅读 · 0 评论