发布时间:2014-12-30 21:41:46
自旋锁自旋锁是内核中最基础的锁机制。自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元持有,调用者就一直循环在那里看是否该自旋锁的持有者已经释放了锁,"自旋"一词就是因此而得名。自旋锁适用于锁使用者保持锁时间比较短的情况。使用自旋锁需要注意有可能造成的死锁情况: .........【阅读全文】
发布时间:2014-12-30 21:41:40
为何要小心?原因是在使用dlopen动态加载共享库时,如果静态库中包含有全局变量,可能会出现名同地址不同的全局变量。解决办法:总是使用RTLD_GLOBAL加载共享库,而不是RTLD_LOCAL。以下是测试程序:Makefile# test shared libraries use static a same static library# the global variables defin.........【阅读全文】