自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 LinkedHashMap实现LRU缓存

LinkedHashMap实现LRU缓存  最近在面试的过程中,遇到了需要设计能实现LRU缓存的数据结构。不考虑时间复杂度,可以使用LinkedList实现,但是缓存需要考虑时间复杂度,所以,需要再加上HashMap的结构,这样就能实现增、查的时间复杂度都是O(1)。  JDK的集合框架中正好提供了一个这样的数据结构:LinkedHashMap,它继承了HashMap。在HashMap中有三个...

2019-04-13 20:57:14 784

原创 HahMap底层实现

HashMap底层实现  HashMap是用途非常大的集合结构,它虽然不是线程安全的,但是在单线程下使用足够了,线程安全的结构是ConcurrentHashMap,在juc包下;当然还有一种HashTable也是线程安全的,但是它的效率非常低,因为它是通过在方法上直接加Synchronized实现的,导致有一个线程访问put方法时,别的线程无法访问get方法,因为他们都是同步方法。好了,继续讲解...

2019-04-12 11:19:01 237

原创 进程间通信方式--共享内存

进程间通信方式–共享内存  共享内存允许两个或多个进程访问同一块内存,就如同malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。共享内存  当一个程序加载进内存后,它就被分成叫作页的块。总之,当一个程序想和另外一个程序通信的时候,那内存将会为这两个程序生成一块公共的内存区域。这块被两个进程分享的内存区域叫做共...

2019-03-27 20:26:17 2014 1

原创 进程间通信方式--消息队列

消息队列  消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。消息队列存放在内核中并由消息队列标识符标识,是一种链表队列。  我们可以通过发送消息来避免命名管道的同步和阻塞问题。但消息队列与命名管道一样,每个数据块都有一个最大长度的限制。我们可以将每个数据块当作是一种消息类型(频道),发送和接收的内容就是...

2019-03-27 16:17:46 684

原创 进程间通信方式

进程间通信方式  每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷贝到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。  不同的进程间通信方式的本质:进程之间可以看到一份公共资源,而提供这份公共资源的形式或者提供者不同,造成了通信方式的不同。fo...

2019-03-27 11:05:36 162

原创 进程间通信方式---管道

进程间通信方式—管道管道的特点:管道只允许具有血缘关系的进程间通信,比如父子进程间通信(后来的命名管道可以实现非血缘关系的进程间通信);管道只允许单向通信;管道内部保证同步机制,从而保证访问数据的一致性;面向字节流;管道的生命周期随进程,进程关闭,对应的管道端口关闭,两个进程都关闭,则管道关闭。1.1 匿名管道管道调用是调用pipe()函数来创建:#include <u...

2019-03-27 11:03:33 472

原创 Redis底层数据结构---hash表

Redis的哈希表—rehash详细讲解  Redis的性能优越,应用普遍,可以存储的键值个数大到上亿条记录,依然保持较高的效率。作为一个内存数据库,Redis内部采用了字典(哈希表)的数据结构实现了键值对的存储。随着数据量的不断增加,数据必然会产生hash碰撞,而Redis采用链地址法解决hash冲突。我们知道如果哈希表数据量达到了一个很大的量级,那么冲突的链的元素数量就会很大,这时查询效率就...

2019-03-26 09:59:22 1169

原创 分布式锁与实现(一):基于Redis实现

分布式锁与实现(一):基于Redis实现现在很多大型网站都是分布式部署,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CPA理论告诉我们,任何一个分布式系统都无法同时满足:一致性(consistency)、可用性(Availability)和分区容错性(partition tolerance),最多只能同时满足两项。所以,很多系统在设计之初就要对这三者做出取舍。在现在的绝大多数...

2019-03-25 09:19:19 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除