
goLang 笔试 | 面试题
文章平均质量分 84
goLang 跳槽备战
戴国进
往后余生,专注人工智能领域!!!
展开
-
面试官:为什么要有RPC协议
“很长时间以来都没有怎么好好搞清楚 RPC(即 Remote Procedure Call,远程过程调用)和 HTTP 调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的 C/S 架构,先说一下他们最本质的区别,就是 RPC 主要是基于 TCP/IP 协议的,而 HTTP 服务主要是基于 HTTP 协议的。我们都知道 HTTP 协议是在传输层协议 TCP 之上的,所以效率来看的话,RPC 当然是要更胜一筹啦!下面来具体说一说 RPC 服务和 HTT原创 2022-07-07 22:02:34 · 337 阅读 · 0 评论 -
面试官:哥们Go语言互斥锁了解到什么程度了?
当提到并发编程、多线程编程时,都会在第一时间想到锁,锁是并发编程中的同步原语,他可以保证多线程在访问同一片内存时不会出现竞争来保证并发安全;在语言中更推崇由通过通信的方式实现共享内存,这个设计点与许多主流编程语言不一致,但是语言也在包中提供了互斥锁、读写锁,毕竟也不能满足所有场景,互斥锁、读写锁的使用与我们是分不开的,所以接下来我会分两篇来分享互斥锁、读写锁是怎么实现的,本文我们先来看看互斥锁的实现。本文基于版本:1.18 包下的就是互斥锁,其提供了三个公开方法:调用获得锁,调用释放锁,在新提供了方法可以非转载 2022-07-07 21:26:19 · 234 阅读 · 0 评论 -
面试官:哥们Go语言的读写锁了解多少?
在上一文中:面试官:哥们Go语言互斥锁了解到什么程度了?我们一起学习了Go语言中互斥锁是如何实现的,本文我们就来一起学习Go语言中读写锁是如何设计的,互斥锁可以保证多线程在访问同一片内存时不会出现竞争来保证并发安全,因为互斥锁锁定代码临界区,所以当并发量较高的场景下会加剧锁竞争,执行效率就会越来越差;因此就引申出更细粒度的锁:读写锁,适用于读多写少的情景,接下来我们就详细看看读写锁。Golang版本:1.18互斥锁我们都知道会锁定代码临界区,当有一个获取了互斥锁后,任何都不可以获取互斥锁,只能等待这个将互斥转载 2022-07-07 21:35:49 · 384 阅读 · 0 评论 -
Go语言切片原生支持并发吗?
前言今天与大家聊一个比较冷门的高频面试题,关于切片的,Go语言中的切片原生支持并发吗?怎么样,心里有答案了嘛,带着你的思考我们一起来看一看这个知识点。实践检验真理实践是检验真理的唯一标准,所以当我们遇到一个不确定的问题,直接写demo来验证,因为切片的特点,我们可以分多种情况来验证: 不指定索引,动态扩容并发向切片添加数据 funcconcurrentAppendSliceNotForceIndex(){sl:=make([]int,0)wg:=sync.W...原创 2022-05-14 20:18:05 · 197 阅读 · 0 评论 -
Scrum 敏捷开发 基础考试
https://ks.wjx.top/wjx/join/complete.aspx?activityid=99878091&joinid=110009713493&sojumpindex=78&tvd=mfo0aRKeQIc%3d&costtime=4379&comsign=388FC695398AE9B1BAA9C8039DA6CDEADF0A127F&s=&jpm=15 50题https://ks.wjx.top/wjx/jo.原创 2021-08-01 22:50:00 · 2938 阅读 · 0 评论 -
goLang实现: 使用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C....26Z
java的实现我们来练习使用go实现package mainimport ( "fmt")func main() { var h = 65 var c, d, e = make(chan int), make(chan int), make(chan int) go func() { for i := 0; i < 26; i++ { <-c fmt...原创 2020-10-11 17:30:37 · 6349 阅读 · 0 评论 -
goLang 精编 选择、填空、判断 共100题
选择题1.【初级】下面属于关键字的是()A. funcB. defC. structD. class参考答案:AC2.【初级】定义一个包内全局字符串变量,下面语法正确的是()A. var str stringB. str := ""C. str = ""D. var str = ""参考答案:AD3.【初级】通过指针变量p访问其成员变量name,下面语法正确的是()A. p.nameB. (*p).nameC. (&p).na...原创 2020-10-16 21:24:14 · 9514 阅读 · 0 评论 -
Golang经典面试题
1. 写出下面代码输出内容package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println(转载 2020-10-16 21:31:26 · 5967 阅读 · 0 评论