首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go
Onemorelight
创建于2022-08-29
订阅专栏
Go语言原理分析以及开发经验分享
暂无订阅
共36篇文章
创建于2022-08-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Golang 自定义排序
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang 自定义排序 C++中实现自定义排序,可以在sort函数的最后一个参数位上,加上一个自定义的比大小函数或者仿函数来实现: lambda
Golang1.18 泛型初探
golang1.18 泛型初探 泛型出现之前 在泛型出现之前,go语言的灵活性很大部分是基于interface{}这个空接口来保证的。任何变量都可以继承空接口,但是在使用变量的时候,就需要对变量进行类
Golang Context的使用场景
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 1.值传递 值传递只是context的一个辅助功能,并不是核心功能。一般我们只用context来传递不影响业务主逻辑的可选数据,比如日志信息、调试
Golang 优雅的使用Context
优雅的关闭goroutine 在很多场景下,在执行一个任务时,我们会将这个任务拆分成几个子任务,然后开启几个不同的goroutine去执行。当因为某些原因这个任务需要终止时,我们需要将这些gorout
生产者-消费者模式 Golang实现
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 生产者-消费者模式 生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料
Master-Worker模式 Golang实现
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Master-Worker模式 Master-Worker模式是常用的并行计算模式。它的核心思想是系统由两类进程协作工作:Master进行和Wor
Future模式 Golang实现
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Future模式 编程中经常遇到在一个流程中需要调用多个子调用的情况,这些子调用相互之间没有依赖,如果串行地调用,则耗时会很长,此时可以使用并发编
Golang 扇入扇出以及通知退出机制
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 扇入和扇出 编程中经常遇到“扇入和扇出”两个概念,所谓的扇入是指将多路通道聚合到一条通道中处理,Go语言最简单的扇入就是使用select聚合多条通
Golang 错误处理
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 panic 和 recover panic相当于throw exception,recover相当于try catch。 所以经过recover接
Golang channel底层剖析
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang channel底层剖析 内存模型 channel的send和recv 初始状态下,ch的缓冲区为空,读和写的下标都指向下标0的位置,
Golang 标准库之strconv
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang标准库之strconv strconv包实现了基本数据类型与其字符串表示的转换。 string与int转换 Atoi() Atoi()
Golang IO操作
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang IO操作 file句柄 os.Open(name string)方法以只读方式打开文件,os 包还提供了 os.OpenFile(n
Golang 匿名函数的活用
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang匿名函数的活用 回调函数 运行结果: 闭包 我们使用一个特殊的情况来举例子,顺便巩固一下并发的知识。 请看以下代码,是golang并发
Golang Tag语法
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang Tag语法 Tag格式 tag被定义在结构体字段的后面,以字符串的形式出现,如下所示: 要注意,不管是双引号还是反引号,都可以用来当
Golang Mutex剖析
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang Mutex剖析 Mutex内存模型 在go语言中,Mutex的结构是这样的: 因为简单所以不需要额外的初始化。此结构的零值就是一个有
Golang GC
本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Golang GC Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW(stop
Golang 实现RPC的几种方式
Golang 实现RPC的几种方式 什么是RPC 远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。 该协议允许运行于一台计算机的程序调用另一台计算机的子
Golang 调度器调度场景
golang 调度器调度场景 场景1 创建G P拥有G1,M1获取P后开始运行G1,G1使用go func()创建了G2,为了局部性G2优先加入到P1的本地队列。 场景2 G执行完毕 G1运行完成后(
Golang 协程调度器原理及GMP设计思想
golang 协程调度器原理及GMP设计思想 一、golang"调度器"的由来 (1)单进程时代不需要调度器 我们知道,一切的软件都是跑在操作系统上,真正用来干活(计算)的是CPU。早期的操作系统每个
Golang 协程和IO多路复用
Golang 协程和IO多路复用 IO阻塞问题 我们知道。通过操作系统记录的进程控制信息,可以找到打开文件描述符表。其中,打开的文件、创建的socket等等,都会记录到这张表里面。 socket的所有
下一页