SynchronizedMap 一次锁住整张表来保证线程安全,所以每次只能有一个线程来 访为 map。 ConcurrentHashMap 使用分段锁来保证在多线程下的性能。 ConcurrentHashMap 中则是一次锁住一个桶。ConcurrentHashMap 默认将 hash 表分为 16 ...
分类:
其他好文 时间:
2020-04-25 01:24:28
阅读次数:
93
edis源码的dict.c主要实现了基于hash表的操作,如增删改查,对哈希表大小的扩容和缩容,以及对哈希表的rehash和增量rehash等。在源码的dictScan函数中,非常巧妙精美地实现了对哈希表的迭代查找,非常建议去看一下。 添加描述 源码地址: "dict.c" "dict.h" ...
分类:
其他好文 时间:
2020-04-23 23:26:19
阅读次数:
79
内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # abs() dict() help() min() setattr() # all() dir() ...
分类:
编程语言 时间:
2020-04-22 22:52:10
阅读次数:
78
CurrentHashMap、HashMap、HashTable的区别 HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11, ...
分类:
其他好文 时间:
2020-04-19 19:43:28
阅读次数:
82
unordered_map<int ,int >mp; unordered_map是基于hash表实现的,查找元素的复杂度可以达到o(1),查找n个元素,复杂度为o(n)。 map是基于红黑树实现的,查找的复杂度为o(log(n)),查找n个元素,复杂度o(nlogn)。 总的来说如果只是记录元素的 ...
分类:
其他好文 时间:
2020-04-12 18:49:09
阅读次数:
62
Hash Hash的常用操作: HSET key filed value //存储一个hash表的key值 HSETNX key filed value //存储一个不存在的hash表的key的值,注意:是key或者filed不存在时返回成功 HMSET key filed value [filed ...
分类:
其他好文 时间:
2020-04-10 00:06:22
阅读次数:
69
概述 redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(string,list列表[队列和栈],set[集合],sorted set[有序集合],hash(hash表))。相关参考文 ...
分类:
其他好文 时间:
2020-04-08 13:36:59
阅读次数:
65
什么是request? request是指Nginx中的http请求,Nginx用结构体ngx_http_request_t对一个http请求进行封装,其中一个http请求包括请求行、请求头、请求体、响应行、响应头、响应体。 webserver是如何处理http请求的? http请求是请求-响应类型 ...
分类:
其他好文 时间:
2020-04-04 22:25:29
阅读次数:
116
Hash缓存表 系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率 hash ...
分类:
系统相关 时间:
2020-04-02 09:13:12
阅读次数:
94
HashMap有扩容机制,就是当达到扩容条件时会进行扩容。HashMap的扩容条件就是当HashMap中的元素个数(size)超过临界值(threshold)时就会自动扩容。在HashMap中,threshold = loadFactor * capacity。 每次扩容会重建hash表,导致性能下 ...
分类:
其他好文 时间:
2020-04-02 01:22:59
阅读次数:
89