一闪笔记 本次搜索耗时 0.109 秒,为您找到 750 个相关结果.
  • 121.STW 在 go 的哪些阶段发生?了解1.8版本的改进吗?

    176 2024-01-17 《Golang面试题》
    STW 在 go 的哪些阶段发生?了解1.8版本的改进吗? STW 在 go 的哪些阶段发生?了解1.8版本的改进吗? 题目来源:字节跳动 答案1: Golang v1.3之前采用传统采取标记-清除法,需要STW,暂停整个程序的运行。 在v1.5版本中,引入了三色标记法和插入写屏障机制,其中插入写屏障机制只在堆内存中生效。但在标记过程中...
  • 299.为什么用户级别的线程 goroutine 比操作系统线程更轻量级?

    132 2024-01-20 《Golang面试题》
    为什么用户级别的线程 goroutine 比操作系统线程更轻量级? 为什么用户级别的线程 goroutine 比操作系统线程更轻量级? 题目来源:字节跳动 答案: 1、首先 Go 语言中的 goroutine 进行切换时,比操作系统线程效率高。Go 语言中,协程的切换发生在用户态,而操作系统线程切换发生在内核态,操作系统中进行线程的切换...
  • 120.interface 的底层实现

    210 2024-01-17 《Golang面试题》
    interface 的底层实现 interface 的底层实现 题目来源:字节跳动 答案1: Go 语言根据接口类型是否包含一组方法将接口类型分成了两类: 使用 runtime.iface 结构体表示包含方法的接口 使用 runtime.eface 结构体表示不包含任何方法的 interface{} 类型; 空接口定义 r...
  • 19.错误处理(上)

    936 2023-12-29 《Go语言核心36讲》
    19 | 错误处理(上) 问题解析 总结 思考题 19 | 错误处理(上) 提到Go语言中的错误处理,我们其实已经在前面接触过几次了。 比如,我们声明过 error 类型的变量 err ,也调用过 errors 包中的 New 函数。今天,我会用这篇文章为你梳理Go语言错误处理的相关知识,同时提出一些关键问题并与你一起探讨。 我们说过...
  • 399.怎么理解“不要用共享内存来通信,而是用通信来共享内存”

    141 2024-01-23 《Golang面试题》
    怎么理解“不要用共享内存来通信,而是用通信来共享内存” 怎么理解“不要用共享内存来通信,而是用通信来共享内存” 题目来源 :滴滴 答案: 共享内存会涉及到多个线程同时访问修改数据的情况,为了保证数据的安全性,那就会加锁,加锁会让并行变为串行,cpu此时也会忙于线程抢锁。另外使用过多的锁,容易使得程序的代码逻辑坚涩难懂,并且容易使程序死锁,死...
  • 35.go语言的引用类型有什么?

    270 2024-01-16 《Golang面试题》
    go语言的引用类型有什么? go语言的引用类型有什么? 题目来源:B站 答案1: 切片(slice)类型, map类型 ,管道(channel)类型 , 接口(interface)类型
  • 模板方法模式

    模板方法模式 7.1 模式动机 7.2 Go语言实现 templatemethod.go templatemethod_test.go 模板方法模式 7.1 模式动机 模版方法模式使用继承机制,把通用步骤和通用方法放到父类中,把具体实现延迟到子类中实现。使得实现符合开闭原则。 如实例代码中通用步骤在父类中实现(准备 、下载 、保存 、收...
  • 375.开俩个协程,一个协程生产数据,另一个协程对数据进行处理,处理完后再把数据发回去,使用管道如何

    124 2024-01-23 《Golang面试题》
    开俩个协程,一个协程生产数据,另一个协程对数据进行处理,处理完后再把数据发回去,使用管道如何实现? 开俩个协程,一个协程生产数据,另一个协程对数据进行处理,处理完后再把数据发回去,使用管道如何实现? 题目来源:京东 答案: 该问题适合使用pipeline模式(pipeline是一系列将数据输入,执行操作并将数据传回的系统,我们称这些操作都...
  • 377.Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,g

    127 2024-01-23 《Golang面试题》
    Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,groutinue数量的上限是多少? Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,groutinue数量的上限是多少? 题目来源:京东 答案: Go的GMP模型中M(Machine)为操作系统线程,这三者交...
  • 337.如何实现只开100个协程

    145 2024-01-22 《Golang面试题》
    如何实现只开100个协程 如何实现只开100个协程 题目来源: 答案:sunrise // 利用 channel 的缓存区实现 func main () { var wg sync . WaitGroup ch := make ( chan struct {}, 3 ) for ...