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