首页
沸点
课程
AI Coding
数据标注
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go八股
订阅
ZzyY
更多收藏集
微信扫码分享
微信
新浪微博
QQ
23篇文章 · 0订阅
Golang并发调度的GMP模型
Golang的一大特色就是Goroutine。Goroutine是Golang支持高并发的重要保障。Golang可以创建成千上万个Goroutine来处理任务,将这些Goroutine分配、负载、调度到处理器上采用的是G-M-P模型。 Goroutine = Golang + …
为什么 Go map 和 slice 是非线程安全的?
大家好,我是煎鱼。 初入 Go 语言的大门,有不少的小伙伴会快速的 3 天精通 Go,5 天上手项目,14 天上线业务迭代,21 天排查、定位问题,顺带捎个反省报告。 其中最常见的初级错误,Go 面试
[go runtime] - go程序启动过程
本文主要是通过GDB对go语言程序进行调试,探究go程序的启动过程。 go语言具有内存管理、并发调度、垃圾回收等特性,go语言在编译阶段会在用户的主函数中插入引导程序。
Golang 读写锁设计
在《Go精妙的互斥锁设计》一文中,我们详细地讲解了互斥锁的实现原理。互斥锁为了避免竞争条件,它只允许一个线程进入代码临界区,而由于锁竞争的存在,程序的执行效率会被降低。同时我们知道,只有多线程在共享资
Go同步原语的基石
Go是一门以并发编程见长的语言,它提供了一系列的同步原语方便开发者使用,例如sync包下的Mutex、RWMutex、WaitGroup、Once、Cond,以及抽象层级更高的Channel。但是,它们的实现基石是原子操作。需要记住的是:软件原子操作离不开硬件指令的支持。本文拟…
Golang的反射reflect深入理解和示例
在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 每种语言的…
Go语言基础二——init函数和main函数
1、init函数 init函数用于包(package)的初始化,有下面的特征: init函数是用于程序执行前做包的初始化函数,比如初始化包里的变量等。
Golang解决TCP粘包拆包问题
最近在使用Golang编写Socket层,发现有时候接收端会一次读到多个数据包的问题。于是通过查阅资料,发现这个就是传说中的TCP粘包问题。下面通过编写代码来重现这个问题: 一种是正常的一个数据包输出。 一种是多个数据包“粘”在了一起,我们定义这种读到的包为粘包。 一种是一个数…
漫话:如何给女朋友解释什么是IO中的阻塞、非阻塞、同步、异步?
周末在家加班,正在疯狂的撸代码,女朋友很开心的跑过来,手里拿着他刚刚画好的一副漫画。 同步、异步、阻塞、非阻塞都是和IO(输入输出)有关的概念。最简单的文件读取就是IO操作。而在文件读取这件事儿上,可以有多种方式。 说到烧水,我们都是通过热水壶来烧水的。在很久之前,科技还没有这…
聊聊线程与进程 & 阻塞与非阻塞 & 同步与异步
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程一个进程内部可能包含了很多顺序执行流,每个顺序执行流就是一个线程。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己…