首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
golang
订阅
你就没点B树吗
更多收藏集
微信扫码分享
微信
新浪微博
QQ
6篇文章 · 0订阅
图解Golang的内存分配
以上是程序内存的逻辑分类情况。 Go是内置运行时的编程语言(runtime),像这种内置运行时的编程语言通常会抛弃传统的内存分配方式,改为自己管理。这样可以完成类似预分配、内存池等操作,以避开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 内存分配算法采用Google…
Go语言的GPM调度器是什么?
相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 著名的C++专家Herb Sutter曾经说过“免费的午餐已经终结”。为了让代码运行的更快…
Golang并发编程
在Go语言中,语言本身就已经实现和支持了并发, 我们只需要通过go关键字来开启goroutine即可。gouroutine其实就是一种协程,类似其他语言中的coroutine, 是在编译器或虚拟机层面上的多任务。它可以运行在一个或多个线程上,但不同于线程,它是非抢占式的
Golang - sync包
第一种就是 Mutex 为互斥锁 , 实现跟Java的reentrantlock很像. 基本都是自旋锁, 输出正确. 其实还可以这么写. 效率更高 此时这就是一个最简单的锁. 简单以第一个例子为例子吧, 比如说 , 我们不知道goroutine啥时候退出是吧, 但是有了这玩意就…
Golang | HttpRouter
httprouter谈不上是一个框架,它的性能非常优秀。完全可以用来代替默认的 ServeMux。 所以比较适合对性能要求高,路由相对简单扁平的业务,或者作为高层HTTP框架的内部模块。 httproute内部通过实现一个trie树来提高性能。 核心代码就是golang标准库中…
图解Golang的channel底层原理
废话不多说,直奔主题。 buf是有缓冲的channel所特有的结构,用来存储缓存数据。是个循环链表 lock是个互斥锁。 recvq和sendq分别是接收(<-channel)或者发送(channel <- xxx)的goroutine抽象出来的结构体(sudog)的队列。是个…