- 博客(6)
- 资源 (9)
- 问答 (41)
- 收藏
- 关注
原创 Golang groupcache LRU 缓存简介与用法
在 Go 中,如果想使用 LRU 缓存,可以使用 Google Golang 团队官方出品的开源库 groupcache ,开源地址见。LRU 缓存通过 groupcache/lru/lru.go实现,它主要是封装了一系列 LRU 缓存操作的相关接口。//创建一个 LRU Cache//向 Cache 中插入一个 KV//从 Cache 中获取一个 key 对应的 value//从 Cache 中删除一个 key//从 Cache 中删除最久未被访问的数据//获取 Cache 中当前的元素个数。
2019-07-14 00:46:22 2338
原创 Golang sync.Cond 简介与用法
Cond 实现了一个条件变量,在 Locker 的基础上增加的一个消息通知的功能,保存了一个通知列表,用来唤醒一个或所有因等待条件变量而阻塞的 Go 程,以此来实现多个 Go 程间的同步。type Cond struct { // L is held while observing or changing the condition L Locker // contains filt...
2019-07-12 22:56:24 6677 1
原创 Golang sync.Pool 简介与用法
Pool 是可伸缩、并发安全的临时对象池,用来存放已经分配但暂时不用的临时对象,通过对象重用机制,缓解 GC 压力,提高程序性能。一个比较好的例子是 fmt 包,fmt 包总是需要使用一些 []byte 之类的对象,Golang 建立了一个临时对象池,存放着这些对象,如果需要使用一个 []byte,就去 Pool 中取,如果拿不到就分配一个。这比起不停生成新的[]byte,用完了再等待 GC 回...
2019-07-12 21:02:22 5525
原创 Golang sync.WaitGroup 简介与用法
1.简介sync.WaitGroup 用于阻塞等待一组 Go 程的结束。主 Go 程调用 Add() 来设置等待的 Go 程数,然后该组中的每个 Go 程都会运行,并在结束时调用 Done(), 递减 WaitGroup 的 counter。type WaitGroup struct { // contains filtered or unexported fields}//设置..................
2019-07-12 17:57:40 4471 2
原创 Golang sync.Map 简介与用法
sync.Map 开箱即用,无需像 map 调用 make() 进行显示初始化。此外,sync.Map 的 key 和 value 类型为空接口 interface{},表示可存储任意类型的数据。Golang 中的 map 在并发情况下,只读是线程安全的,并发读写线程不安全。为了解决这个问题,Golang 提供了语言层级的并发读写安全的 sync.Map。
2019-07-11 10:07:51 1341
原创 Golang bytes.Buffer 用法精述
bytes.Buffer 是 Golang 标准库中的缓冲区,具有读写方法和可变大小的字节存储功能。缓冲区的零值是一个待使用的空缓冲区。定义如下:注意要点:(1)从 bytes.Buffer 读取数据后,被成功读取的数据仍保留在原缓冲区,只是无法被使用,因为缓冲区的可见数据从偏移 off 开始,即buf[off : len(buf)]。(1)声明一个 Buffer。(2)往 Buffer 中写入数据。(3)从 Buffer 中读取数据。(4)其它操作。3.使用示例(1)从文件 test.txt
2019-07-02 16:58:42 12828 1
tinyxml2+示例代码+介绍文档
2015-09-26
HTML 如何设置图片宽高分别为原宽高的不同比例?
2020-08-22
Google C++编程风格指南中6.10节流中不支持字符串操作符重新排序 什么意思
2018-08-05
C++模板元编程和编写模板有什么区别?
2018-06-17
g++ -S将源码编译成汇编代码,使用的是哪个工具?
2018-06-11
从长度为n的数组中找出同时满足下面两个条件的所有元素,时间复杂度为O(n)。
2018-05-28
为什么C++局部数组变量地址间隔是16字节的倍数?
2018-05-17
缓冲溢出,为什么不报错?
2018-05-16
RLF、HRLF控制字符到底是什么
2018-05-10
printf关于浮点数的四舍五入的奇怪问题?
2018-05-09
stringstream的输入与输出的用法
2018-03-19
使用JS如何获取剪贴板内容
2018-03-06
Linux命名管道为什么叫FIFO?
2018-02-07
Linux下printf与wprintf不能同时使用?
2018-01-15
C标准库函数setvbuf的名称全称
2018-01-15
mysql count distinct 加条件
2017-06-15
awk如何获取除最后一行的所有行?
2017-05-19
rz命令如何上传文件夹
2017-05-07
CSS浮动为什么不会遮盖同级元素
2015-09-17
Linux下系统调用execl会等待一段时间才执行指定的可执行程序?
2015-09-11
为什么 Go range slice 时通过下标和值拷贝的性能是一样的?
2022-03-17
反向代理的上游服务指的是什么?
2021-03-12
Golang 接口类型可以有数据成员吗
2020-12-02
GoLand 如何自动批量换行
2020-10-07
Golang 如何进行标准错误输出
2019-12-24
git branch -dr origin/<branchname> 无法删除远端分支
2019-09-16
golang main包可以被import吗
2019-06-11
golang小数默认是float32还是float64?
2019-05-28
golang const 可以修饰函数形参吗
2019-05-28
ldconfig命令全称是什么呢?
2019-04-02
golang的struc成员后跟字符串有什么作用?
2019-03-15
Linux中 链接器 ld 命令的全称是什么英文单词?
2019-03-12
ssh命令默认端口如何查看
2019-02-15
ssh客户端为什么不指定端口也可以登录成功
2019-02-15
C/C++的预处理文件的后缀为什么约定为.i
2019-01-24
go为什么不能获取字符串某个字符地址?
2019-01-13
date命令将时间戳转为可读时间为什么需要加@符号
2018-12-06
GNU C++定义对象时对象名称被括号包围且前面有个下划线是什么意思
2018-10-09
git merge可以操作远端分支吗?
2018-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人