
go
文章平均质量分 71
毕业_设计
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
golang中的标准库context解读
golang中的标准库context解读 简介 golang 中的创建一个新的 goroutine , 并不会返回像c语言类似的pid,所有我们不能从外部杀死某个goroutine,所有我就得让它自己结束,之前我们用 channel + select 的方式,来解决这个问题,但是有些场景实现起来比较麻烦,例如由一个请求衍生出的各个 goroutine 之间需要满足一定的约束关系,以实现一些诸如有效期,中止routine树,传递请求全局变量之类的功能。于是google 就为我们提供一个解决方案,开源了 c翻译 2022-04-20 21:25:33 · 294 阅读 · 0 评论 -
go面试题-Go Runtime
go面试题-Go Runtime Go Runtime 1. goroutine定义 golang在语言级别支持协程,称之为goroutine; golang标准库提供的所有系统调用操作(包括所有同步I/O操作) 都会让出CPU给其它goroutine, 这让goroutine的切换管理不依赖于系统的线程和进程,也不依赖于CPU的核心数量 而是交给Golang的运行时统一调度 2. GMP指的是什么 * G(goroutine),我们所说的协程,用户级的轻量级线程,每个goroutine对象翻译 2022-04-20 21:23:52 · 287 阅读 · 0 评论 -
go面试题-并发编程
go并发编程 Mutex几种状态 mutexLocked 表示互斥锁的锁定状态 mutexWoken 唤醒锁 mutexStarving 当前互斥锁进入饥饿状态 mutexWaiterShift 统计阻塞在这个互斥锁上的goroutine的数目 互斥锁无冲突是最简单的情况了,有冲突时,首先进行自旋,因为Mutex保护的代码段都很短 经过短暂的自旋就可以获得,如果自旋等待无果,就只好通过信号量让当前goroutine进入Gwaitting状态 Mutex的正常模式和饥饿模式 正常模式(非公平锁原创 2022-04-20 21:22:45 · 316 阅读 · 0 评论 -
go面试题-基础类
go基础类 1. go优势 * 天生支持并发,性能高 * 单一的标准代码格式,比其它语言更具可读性 * 自动垃圾收集比java和python更有效,因为它与程序同时执行 go数据类型 int string float bool array slice map channel pointer struct interface method go程序中的包是什么 * 项目中包含go源文件以及其它包的目录,源文件中的函数、变量、类型都存储在该包中 * 每个源文件都属于一个包,该包在文件顶部使原创 2022-04-20 21:20:31 · 466 阅读 · 0 评论