06 2022 档案
摘要:一、概念 在多协程并发环境下,我们常常会碰到以下两个问题。假设我们现在有 2 个协程,我们叫它们协程 A 和 B 。 【问题1】如果协程 A 发生了 panic ,协程 B 是否会因为协程 A 的 panic 而挂掉?【问题2】如果协程 A 发生了 panic ,协程 B 是否能用 recover
阅读全文
摘要:结论:defer和return的执行顺序 先为返回值赋值,然后执行defer,然后return到函数调用处。 一、先看return的使用方法 package main import "fmt" // return语句执行步骤 // 1、返回值赋值 // 2、defer语句 // 3、真正RET返回
阅读全文
摘要:一、概念: 1、channel是可以让一个 goroutine 发送特定值到另一个 goroutine 的通信机制,channel 的发送方和接受方是 goroutine 对象,属于内存级别的通信 2、channel 在多并发操作里是属于协程安全的,并且遵循了 FIFO 特性。即先执行读取的 gor
阅读全文
摘要:一、并发和并行 1、并行 要求CPU有多核计算的能力 在同一时刻需要多个线程在多个CPU上同时执行指令,无论宏观还是微观上都会看到多个线程同时在运行 2、并发 并不要求CPU具备多核计算的能力 每核CPU都是独立的,CPU与CPU之间不需要交互 二、线程 线程是操作系统能够调度的最小单位,分为内核态
阅读全文