数据结构
文章平均质量分 87
懒猫阿迪
这个作者很懒,什么都没留下…
展开
-
HashMap实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难原创 2014-09-26 23:12:27 · 328 阅读 · 0 评论 -
高效编程之互斥锁和自旋锁的一些知识
两种锁的加锁原理互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。两种锁的区别互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区持锁时间的大小并不会对互斥锁的开销造成影响,而自旋锁是死循环检测,加锁全原创 2014-10-14 23:34:35 · 475 阅读 · 0 评论 -
信号量、互斥体和自旋锁
一、信号量 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作: (1) 测试控制该资源的信号量。 (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。 (3) 若此原创 2014-10-14 23:32:27 · 374 阅读 · 0 评论 -
自旋锁和互斥锁区别
2012-10-24 08:55 5022人阅读 评论(0) 收藏 举报http://blog.csdn.net/kyokowl/article/details/6294341POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的原创 2014-10-14 23:28:53 · 449 阅读 · 0 评论 -
自旋锁_读写自旋锁_顺序锁_读-拷贝-更新
旋锁用于保护短的代码,其中只包含少量C语句,因此很快会执行完毕。进程上下文切换时,不适合用自旋锁,应该用信号量。 1. 自旋锁自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图获得一个已经被别的线程所持有的自旋锁,处理器会继续执行这个线程,一直进行忙循环-自旋,等待锁重新可用。注意:这里是自旋,处理器继续执行该线程,而不是睡眠;信号量就会睡眠。也正因为不会睡眠,所原创 2014-10-14 23:26:36 · 1198 阅读 · 0 评论 -
mysql中int、bigint、smallint 和 tinyint的区别详细介绍
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint;接下来将详细介绍以上三种类型的应用最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:原创 2014-11-20 22:05:27 · 497 阅读 · 0 评论 -
Navicat Lite for MySQL如何导入外部数据
1 请使用10或者10以上的版本2 备份---还原备份中导入数据即可原创 2014-12-03 17:38:29 · 3150 阅读 · 1 评论 -
Eclipse Java注释模板设置详解
设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:文件(Files)注释标签:/** * @Title: ${file_name} * @Package ${package_name} * @Descriptio原创 2014-12-09 20:41:34 · 395 阅读 · 0 评论 -
ConcurrentHashMap原理分析之一
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅...原创 2018-04-09 10:53:31 · 278 阅读 · 0 评论