第 10 页 - golang
0
评论
88
浏览

go中的struct 能不能比较

题目序号:(3240)题目来源:腾讯频次:1答案1:(One)不同类型的 struct 之间不能进行比较,编译期就会报错(GoLand 会直接提示)同类型...

0
评论
108
浏览

go defer

题目序号:(3241)题目来源:腾讯频次:1答案1:(One)使用defer的优势defer一般用于资源的释放和异常的捕捉, 作为Go语言的特性之一.de...

0
评论
106
浏览

select可以用于什么

题目序号:(3242)题目来源:腾讯频次:1答案1:(One)Go 的通道有两种操作方式,一种是带 range 子句的 for 语句,另一种则是 sele...

0
评论
93
浏览

用go撸一个生产者消费型,用channel通信,怎么友好的关闭chan?

题目序号:(2804, 2982)题目来源: 七牛云、字节跳动频次: 2答案:小强如何优雅的关闭channel 记住两点向一个已关闭的channel发送...

0
评论
117
浏览

goroutine调度源码

题目序号:(2807)题目来源: 陌陌频次: 1答案: 小强G、P、M 是 Go 调度器的三个核心组件,各司其职。在它们精密地配合下,Go 调度器得以高...

0
评论
116
浏览

互斥锁的底层实现

题目序号:(2808)题目来源: 陌陌频次: 1答案: 小强互斥锁是并发程序中对共享资源进行访问控制的主要手段,Mutex是go语言提供的简单易用的互斥...

0
评论
105
浏览

用go构造一个链表怎么做,想要从链表尾部插入,怎么做

题目序号:(2816)题目来源: 哔哩哔哩频次: 1答案: 小强尾插法 不断的将新节点更新为最后一个节点type LinkNode struct { ...

0
评论
107
浏览

go 的 map 与 sync.map

题目来源: 字节跳动 频次: 1答案:苦痛律动Go语言中的Map是一种无序的键值对集合。Map可以通过key在O(1)的时间复杂度内进行查询、更改、删除操...

0
评论
124
浏览

go 建堆过程

题目来源: 字节跳动 频次:1答案:苦痛律动堆的概念堆是一个完全二叉树 (除了最后一层,其他都是满节点,最后一层先排左节点)堆中每一个节点的值都必须大于等...

0
评论
111
浏览

Go语言有缓冲Channel与无缓冲Channel区别

题目来源: 字节跳动 频次: 1答案:苦痛律动阻塞我们需要先了解阻塞的概念: 在执行过程中暂停,以等待某个条件的触发 ,我们就称之为阻塞channelch...

0
评论
113
浏览

golang的一些常用工具库

题目序号:(3031)题目来源:度小满频次:1答案1:(dema)fmt包,是golang最为常见的包,提供格式化输出输入功能strings包,实现了用于...

0
评论
88
浏览

谈谈go语言和其他语言的区别

题目序号:(3034)题目来源:小米频次:1答案1: (dema)主要有以下9点区别:Go 总是在构建中包含二进制文件Go 没有针对程序依赖的集中托管服务...

0
评论
109
浏览

go实现协程池

题目序号:(3044)题目来源:小米频次:1答案1:(dema)package main import ( "fmt" &q...

0
评论
126
浏览

两个协程交替打印1到20

题目来源:字节跳动频次:2答案:小小使用channelpackage main import ( "fmt" &qu...

0
评论
113
浏览

sync.map与map的区别

题目来源:知乎频次:1答案:小小Go 语言原生 map 并不是线程安全的,对它进行并发读写操作的时候,需要加锁。而 sync.map 则是一种并发安全的 ...

0
评论
90
浏览

goroutine 和 kernel thread 之间是什么关系?

题目序号:(2960)题目来源:pingCAP频次:1答案:咸鱼没有早餐在进程被划分为更小的线程后,线程成为了最小的调度单元,也是在 CPU 上执行的最小...

0
评论
98
浏览

垃圾回收 相比程序员直接 free 和 delete 之类的,有什么优化(内存碎片)

题目来源:字节跳动频次:1答案:树枝goalng1.8的GC采用三色标记法+混合写屏障三色标记法:将所有对象分为三类,白色、黑色与灰色。白色:暂无对象引用...

0
评论
125
浏览

go channel close后读的问题 - name: keywords

题目来源:UCLOUD频次:高频答案:树枝channel作为传递消息的通道,对他的操作无非有三种,向channel发送值、从channel中取值,关闭ch...

0
评论
109
浏览

用过go,那么进程,协程,线程各自的优缺点

题目来源:百度频次:高频答案:树枝首先简单介绍一下进程、线程、协程进程:是操作系统中最小的资源分配单位,当一个程序加载到内存中成为进程时,进程分为四个部分...

0
评论
112
浏览

Go map的底层原理

题目来源:腾讯频次:高频答案:树枝这道题需要从两个维度来回答map的实现原理go map是基于hash table(哈希表)来实现的,冲突的解决采用拉链法...

0
评论
95
浏览

defer的执行顺序

题目来源:腾讯频次:高频答案:树枝一个函数中多个defer的执行顺序defer的作用就是把defer关键字之后的函数压入一个栈中延迟执行,多个defer的...

0
评论
91
浏览

Golang和Java的垃圾回收机制

题目来源:Amber Group频次:答案:树枝golang在1.8GC之后采用三色标记法与混合写屏障技术三色分别指白色,黑色,灰色白色表示没有被扫描到的...

0
评论
121
浏览

go常用的第三方库

题目来源:滴滴频次:1答案:树枝Goroutine 泄漏防治:goleak日志:logrusweb框架:gin beego压力测试:heyRPC框架:gr...

0
评论
160
浏览

go 怎么实现func的自定义参数

题目来源:滴滴频次:1答案:树枝在 golang中,type 可以定义任何自定义的类型func 也是可以作为类型自定义的,type myFunc func...

0
评论
126
浏览

如何判断channel已关闭?

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

0
评论
112
浏览

defer的执行顺序

题目来源:小米频次:1整理人:lws执⾏顺序是 fun3() -> func2()-> func1()

0
评论
107
浏览

golang的调试

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

0
评论
116
浏览

defer recover panic 执行顺序

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

0
评论
157
浏览

Go的多线程

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

0
评论
108
浏览

Map是线程安全的吗?怎么解决并发安全问题?

题目来源:腾讯频次:高频答案:Evan.CMap不是线程安全的若想实现map线程安全方法一:使用读写锁,即map + sync.RWMutex方法二:使用...

0
评论
111
浏览

sync.Map 怎么解决线程安全问题?看过源码吗?

题目来源:腾讯频次:高频答案:Evan.Csync.Map底层也是锁,进行了读写分离type Map struct { mu Mutex re...

0
评论
106
浏览

copy是操作符还是内置函数

题目来源:腾讯频次:高频答案:Evan.CGolang中copy是内置函数。golang 题目整体

0
评论
110
浏览

进程和协程

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

0
评论
93
浏览

如何解决孤儿进程的出现

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

0
评论
99
浏览

网络连接的各层的状态

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

0
评论
114
浏览

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

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

0
评论
105
浏览

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

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

0
评论
150
浏览

对已经关闭的channel进行读写操作会发生什么?

答案1:读已关闭的channel读已经关闭的channel无影响。如果在关闭前,通道内部有元素,会正确读到元素的值;如果关闭前通道无元素,则会读取到通道内...

0
评论
129
浏览

Go语言中是如何实现继承的?

答案1:对于Go语言是否像C++、Java一样是面向对象的语言,官方给出的解释如下:Yes and no. Although Go has types a...

0
评论
157
浏览

数组怎么转集合?

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

0
评论
93
浏览

Go的GMP模型?

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

0
评论
96
浏览

Go和java比有什么不同?

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

0
评论
100
浏览

介绍一下通道

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

0
评论
103
浏览

channel实现方式/原理/概念/底层实现

答案1:背景:Go语言提供了一种不同的并发模型--通信顺序进程(communicating sequential processes,CSP)。设计模式:...

0
评论
106
浏览

同一个协程里面,对无缓冲channel同时发送和接收数据有什么问题

答案1:同一个协程里,不能对无缓冲channel同时发送和接收数据,如果这么做会直接报错死锁。对于一个无缓冲的channel而言,只有不同的协程之间一方发...

0
评论
119
浏览

channel和锁的对比

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

0
评论
114
浏览

channel的应用场景

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

0
评论
132
浏览

slice和array区别

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

0
评论
103
浏览

map取一个key,然后修改这个值,原map数据的值会不会变化

答案1:map属于引用类型,所以取一个key,然后修改这个值,原map数据的值会发生变化

0
评论
129
浏览

向为nil的channel发送数据会怎么样

答案1:空通道即无缓冲通道。无缓冲通道上的发送操作将会阻塞,直到另一个goroutine在对应的通道上执行接收操作,这时值传送完成,两个goroutine...