
Linux编程
zhangyun75
这个作者很懒,什么都没留下…
展开
-
自旋锁(spin lock)与互斥锁(mutex)的比较
自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁。互斥量是阻塞锁,当某线程无法获取互斥量时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放互斥量后,操作系统会激活那个被挂起的线程,让其投入运行。两种锁适用于不同场景:如果是多核处理器,如果预计线程等待锁的时间很短,短到比线程两次上...转载 2018-06-06 11:33:10 · 1714 阅读 · 0 评论 -
gdb调试技巧
1、按结构体格式打印set print pretty on原创 2018-05-10 11:56:54 · 395 阅读 · 0 评论 -
C++ STL中哈希表 hash_map介绍
0 为什么需要hash_map用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑 张三丰-武当掌门人,太极拳创始人 东方不败-第一高手,葵花宝典 ...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信息,最傻的方法就是取得所有的记录,然...转载 2018-06-30 11:59:08 · 830 阅读 · 0 评论 -
c++ 实现hashmap
由于hashmap不是c++ stl中标准实现,这样在跨平台使用时就可能会出现问题,于是想到自己实现一个hashmaphash算法使用开链法解决hash冲突,主要实现了添加,删除,查找几个方法头文件如下hashmap.h#ifndef _HASHMAP_H_ #define _HASHMAP_H_ template<class Key, class Value> class Ha...转载 2018-06-30 14:40:02 · 3375 阅读 · 0 评论 -
Linux必会调试分析工具
1、gdb 2、strace 3、ltrace原创 2018-07-16 17:19:36 · 428 阅读 · 0 评论