
golang
文章平均质量分 72
G0o0o0o
这个作者很懒,什么都没留下…
展开
-
关于ZeroMQ
ZeroMQ ZMQ是一个传输层,socket lib,底层的网络通信库,在socket api上进行了封装,将网络通讯、进程通讯和线程通讯抽象成统一的API接口 ZMQ和Socket区别 Socket是端到端(1:1),ZMQ是N:M ZMQ用于node和node通信 三种模式 应答模式(类似半双工) 使用REQ-REP套接字发送和接受消息是需要遵循一定规律的。客户端首先使用zmq_send()发送消息,再用zmq_recv()接收,如此循环。如果打乱了这个顺序(如连续发送两次)则会报错。类似地,原创 2021-08-09 23:24:34 · 417 阅读 · 0 评论 -
Golang map和 sync.Map
Golang map和 sync.Map map底层实现和扩容机制 sync.map安全机制 1. map 和java中hashmap一样,Go中的map是基于哈希来实现的,同样也是采用链地址法来解决法系冲突,采用的是数组+链表的方式来表达map,这一点和java不同,java是通过数组+链表+红黑树来实现的。 1.1. 结构体 hmap type hmap struct { count int //当前保存元素的个数 flags uint8 B uint8 /原创 2021-08-01 22:05:16 · 1210 阅读 · 0 评论 -
golang 垃圾回收机制
golang 垃圾回收机制 术语 allocator collector 自动内存管理机制一般包含allocator(分配器)和collector(回收器)。allocator负责为应用代码分配对象,而collector则负责寻找存活的对象,并释放不再存活的对象 mutator mutate的是变化的意思,mutator就是改变者,在GC里,指的是改变对象之间引用关系的实体,可以简单的理解为我们写的的应用程序(运行我们写的代码的线程, 协程)。 golang垃圾回收算法-三色标记法 三色标记是以标记原创 2021-07-11 12:52:48 · 393 阅读 · 0 评论 -
goroutine调用机制
goroutine调用机制 1. GPM模型 G:理解为任务,代表着一个goroutine P:理解为处理器,每个M都在P上面运行,数量是GOMAXPROCS,最大256 M:理解为线程,创建M时都会在底层创建线程,G都是在M上运行 2. gorountine过程 goroutine执行时,相对应的就是创建一个任务,这个任务进入到队列中(全局队列) 如果有空闲的处理器,则会创建线程来循环执行任务。该线程会先从本地队列中获取任务,如果本地队列中没有任务了,再从全局队列中获取(获取的数量=全局队列任务量原创 2021-07-11 12:50:45 · 344 阅读 · 1 评论 -
golang中byte和rune
golang中byte和rune byte byte alias for uint8 1byte = 8bit 强调数据是raw data rune rune alias for int32 int32 = 4byte 表示Unicode的code point uint8 the set of all unsigned 8-bit integers (0 to 255) int32 the set of all signed 32-bit integers (-214748原创 2021-06-30 10:06:25 · 169 阅读 · 0 评论