如何判断channel已关闭?

题目来源:小米频次:高频整理人:lws方式1:通过读chennel实现用 select 和 <-ch 来结合判断,ok的结果和含义:true:读到数...

golang的调试

题目来源:度小满频次:1整理人:lws1、使用IDE进行(如:goland)进行debug调试,不详细说明。2、使用golang调试工具进行调试,如:dl...

defer recover panic 执行顺序

题目来源:字节跳动频次:高频答案:Evan.C执行顺序应该为panic、defer、recover发生panic的函数并不会立刻返回,而是先层层函数执行d...

Go的多线程

题目来源:字节跳动频次:高频答案:Evan.CGo的多线程编程采用的是协程,也可以看作是用户态线程

进程和协程

题目来源:网易互娱频次:高频答案:!进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程...

如何解决孤儿进程的出现

题目来源:网易互娱(操作系统)频次:1答案:!孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init...

网络连接的各层的状态

题目来源:网易互娱 (计网)频次:1答案:!七层模型的每一层都具有清晰的特征。基本来说:1)第七至第四层(应用层->表示层->会话层->...

了解中间件吗?有什么好处?

题目来源:网易互娱频次:1答案:!中间件可以 提供统一 标准的公共服务减少上层应用的开发工作量,缩短应用的开发时间,并有助于提高应用软件的质量,例如rab...

golang里的数组和切片有了解过吗?

答案1:数组长度是固定的,而切片是可变长的。可以把切片看作是对底层数组的封装,每个切片的底层数据结构中,一定会包含一个数组。数组可以被称为切片的底层数组,...

数组怎么转集合?

答案1:可以使用数组的索引作为map的key,数组的值作为map的值func main() { arr := [5]int m := ma...

Go的GMP模型?

答案1:G是Goroutine的缩写,相当于操作系统的进程控制块(process control block)。它包含:函数执行的指令和参数,任务对象,线...

Go和java比有什么不同?

答案1:Go也称为Golang,是一种开源编程语言,Go可以轻松构建可靠,简单和高效的软件。Go是键入的静态编译语言。Go语言提供垃圾收机制,CSP风格的...

介绍一下通道

答案1:如果说goroutine是Go程序并发的执行体,通道就是它们之间的连接。通道可以使一个goroutine发送特定值到另一个goroutine的通信...

channel和锁的对比

答案1:并发问题可以用channel解决也可以用Mutex解决,但是它们的擅长解决的问题有一些不同。channel关注的是并发问题的数据流动,适用于数据在...

channel的应用场景

答案1:channel适用于数据在多个协程中流动的场景,有很多实际应用:① 任务定时比如超时处理:select { case <-time....

slice和array区别

答案1:array是固定长度的数组,是值类型的,如果进行赋值或者作为函数参数,实际上整个数据都会被重新拷贝一份。使用前必须声明长度arr := [5]in...

WaitGroup的坑

答案1:① Add一个负数如果计数器的值小于0会直接panic② Add在Wait之后调用比如一些子协程开头调用Add结束调用Wait,这些 Wait无...

go struct 能不能比较

答案1:需要具体情况具体分析,如果struct中含有不能被比较的字段类型,就不能被比较,如果struct中所有的字段类型都支持比较,那么就可以被比较。不可...

go 实现不重启热部署

答案1:根据系统的 SIGHUP 信号量,以此信号量触发进程重启,达到热更新的效果。热部署我们需要考虑几个能力:新进程启动成功,老进程不会有资源残留新进程...

读写锁底层是怎么实现的

答案1:读写锁的底层是基于互斥锁实现的。为什么有读写锁,它解决了什么问题?(使用场景)它的底层原理是什么?在这里我会结合 Go 中的读写锁 RWMutex...

goroutine与线程的区别?

题目序号:(113、653)题目来源: 小鹅通、网易频次: 2答案1:(泉)一个线程可以有多个协程线程、进程都是同步机制,而协程是异步协程可以保留上一次调...

讲一讲 GMP 模型

题目序号:(9,31,98,152,218,486,637,651,694,739,819,863,917,978,937,1216,1674,1865,...

了解的gc算法有哪些?

题目序号:(820、5330、6615、982、5526、5430、167)题目来源:高德、金山、北京合链 、腾讯、地平线、小米频次:6答案1:(peac...

深拷贝和浅拷贝

题目序号:(225、2462、4794、6617)题目来源:北京合链、映客、腾讯 频次:4答案1:(peace)1) 深拷贝︰拷贝的是数据本身,创造一个新...

为什么不要大量使用goroutine

题目序号:(650)题目来源:网易 频次:1答案1:(peace)大量创建goroutine,势必会消耗大量的系统资源(如内存、CPU等),从而可能导致系...

go 的优势

题目序号:(1244、5421、1850)题目来源:字节 、映客频次:3答案1:(peace)(1)与其他作为学术实验开始的语言不同,Go 代码的设计是务...

make 与 new 的区别

题目序号:(1631 2000 3317 3468 96) 题目来源: 腾讯 Shein 小米 好未来频次: 5答案1:(苦痛律动)引用类型与值类型引用类...

Slice 与 Array, Append()

题目来源: 实在太多 频次: 40+答案1:(苦痛律动) +Array数组(Array)是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个...

如何实现一个线程安全的 map?

题目序号:(638)题目来源:学而思频次:1答案1:(自由)+三种方式实现:加读写锁分片加锁sync.Map加读写锁、分片加锁,这两种方案都比较常用,后者...

go 的锁是可重入的吗?

题目序号:(663)题目来源:网易频次:1答案1:(自由)不是可重入锁。讨论这个问题前,先解释一下“重入”这个概念。当一个线程获取到锁时,如果没有其他线程...

Go map 的底层实现 ?

题目序号:(67,94,6832,2995,858,1036,1048,1380,1507,1859) 题目来源:好未来、小米、腾讯、小米、滴滴、腾讯、字...

协程goroutine

题目序号:(2)题目来源:深信服 频次:1答案1:(阿纪、)题解来源 协程是一种用户态的轻量级线程,协程的调度完全由用户控制(进程和线程都是由cpu 内核...