源码基于go1.8rc3。首先看看mheap的数据结构// mheap本身只包含"free[]" and "large"数组// 但其他的全局数据也在这里// mheap 禁止从堆上创建,因包含的mSpanLists不能从堆上创建type mheap struct { lock mutex free... ...
分类:
其他好文 时间:
2019-09-29 12:32:00
阅读次数:
97
monitor概念 管程,监视器。在操作系统中,存在着semaphore和mutex,即信号量和互斥量,使用基本的mutex进行开发时,需要小心的使用mutex的down和up操作,否则容易引发死锁问题。为了更好的编写并发程序,在mutex和semaphore基础上,提出了更高层次的同步原语,实际上 ...
分类:
编程语言 时间:
2019-09-29 10:06:56
阅读次数:
178
#include<mutex> 包含四类锁: 1 std::mutex 最基本也是最常用的互斥类 2 std::recursive_mutex 同一线程内可递归(重入)的互斥类 3 std::timed_mutex 除具备mutex功能外,还提供了带时限请求锁定的能力 4 std::recursiv ...
分类:
编程语言 时间:
2019-09-25 10:57:44
阅读次数:
147
概述 在开发过程中,我们经常会遇到并发问题,解决并发问题通常的方法是加锁保护,比如常用的spinlock,mutex或者rwlock,当然也可以采用无锁编程,对实现要求就比较高了。对于任何一个共享变量,只要有读写并发,就需要加锁保护,而读写并发通常就会面临一个基本问题,写阻塞读,或则写优先级比较低, ...
分类:
数据库 时间:
2019-09-22 15:27:39
阅读次数:
164
frameworks/av/services/mediacodec/main_codecservice.cpp omxall.cpp registerAsService() --> servicemanagerall.cpp BpHwServiceManager::_hidl_add() 关键是上面 ...
分类:
其他好文 时间:
2019-09-20 18:50:17
阅读次数:
269
1. 临界区加排他锁(Go sync.Mutex.Lock()) 如果并发量大,锁竞争激烈,会导致性能开销大 2. 读多写少场景,使用读写锁(Go sync.Mutex.RLock()) 支持并发读,但写锁会block住读和写,读多场景性能会好很多 3. 对计数使用CAS操作(Go sync.ato ...
分类:
其他好文 时间:
2019-09-14 16:16:41
阅读次数:
108
本文链接:https://blog.csdn.net/xhjcehust/article/details/45844901笔者之前照着通用写法练手写过一个小的线程池版本,最近几天复习了一下,发现大多数线程池实现都离不开锁的使用,如互斥量pthread_mutex*结合条件变量pthread_cond ...
分类:
编程语言 时间:
2019-09-13 13:12:34
阅读次数:
138
闲的蛋疼做了一个6.828的homework 就是这里 https://pdos.csail.mit.edu/6.828/2018/homework/barrier.html 就是说需要我们利用给的一个mutex,一个条件变量,实现一个barrier. 感觉barrier就是书上讲的那种sleep ...
分类:
其他好文 时间:
2019-09-10 10:23:35
阅读次数:
91
1. 了解Linux的那个驱动?举例讲讲。 2. 中断上半部下半部 3. spinlock semphore mutex 区别 4. 内核空间和用户空间通信方式 5. boot传给kernel的参数 6. linux 进程调度方法 7. linux softirq 8. MMU作用 9. 访问外部寄 ...
分类:
系统相关 时间:
2019-08-30 09:23:45
阅读次数:
281
GIL全局解释器锁 GIL与普通的互斥锁 死锁 信号量 event事件 线程q ...
分类:
其他好文 时间:
2019-08-19 20:57:43
阅读次数:
73