- 博客(7)
- 收藏
- 关注
原创 【chromium cdm 模块源码分析】
widevine 作为动态库被 chromium 动态加载,比如 linux 使用 dlopen。CdmModule 初始化// chromium\src\media\cdm\cdm_module.ccbool CdmModule::Initialize(const base::FilePath& cdm_path) { ... // Load the CDM. library_ = base::ScopedNativeLibrary(cdm_pa
2022-01-07 09:16:21
829
原创 NPTL:CAS 测试
NPTL 中的 CAS 操作借助了 GCC 内置的原子性操作函数__sync_bool_compare_and_swap(),而__sync_bool_compare_and_swap() 是用“比较并替换”指令实现的,该类指令是原子性的。bool __sync_bool_compare_and_swap (type *ptr, type oldval, type newval, ...)...
2019-10-11 17:13:40
321
原创 NPTL:lll_lock() 和 lll_unlock() 的实现
NPTL 库中 lll_lock() 和 lll_unlock() 的实现用到了: sys_futex() 使用了FUTEX_WAIT 操作,使得调用者线程被挂起;使用FUTEX_WAKE 操作来恢复之前被挂起的线程 使用了 GCC 内置的原子性操作函数,__sync_lock_test_and_set()、__sync_synchronize() CAS 的实现借助...
2019-10-11 17:09:33
1302
1
原创 【算法导论】红黑树 java实现
PS:本文章的理论知识来自《数据结构和算法 java描述》平衡的补救红黑树的平衡是在插入、删除的过程中取得的。对一个要插入的数据项,插入例程要检查不会破坏树一定的特征。如果破坏了,程序就会进行纠正,根据需要更改树的结构。通过维持树的特征,保持了树的平衡。红-黑规则 每一个节点不是红色的就是黑色的 根总是黑色的 如果节点是红色的,则它的子节点必须是黑色的(...
2018-12-21 00:23:20
211
原创 【算法导论——java实例代码】第4章 分治策略
4.1 求最大子数组问题实例:求数组A=[-1, 2, 4, -5, 7, 8, 9, -10]中和最大的子数组java代码package algorithm.demo;public class MaxSubArrayFinder { static int[] findMaxCrossingSubArray(int[] a, int low, int mid, int high) { ...
2018-07-15 23:12:40
214
原创 【算法导论——java实例代码】第2章
课后习题2.3-7 描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素。伪代码1: 先用归并排序算法将集合S排好序,其运行时间 Θ(n lg(n))2: i = 13: j = n4: while i < j do5: if A[i] + A[j] = x then6: return true7:...
2018-07-09 22:59:02
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人