- 博客(3)
- 资源 (7)
- 收藏
- 关注
原创 golang并发控制之channel
并发控制之channel我们考虑一种场景,协程A在执行过程中需要创建子协程A1、A2、A3…An,协程A创建完子协程后就等待子协程退出。针对这种场景,Go提供了三种解决方案。Channel:使用channel控制子协程WaitGroup:使用信号量机制控制子协程Context:使用上下文控制子协程三种方案各有优劣,比如Channel的优点是实现简单,清晰易懂,WaitGroup的优点是子协程的个数可以动态调整,Context的优点是对子协程派生出来的孙子协程的控制。各种解决方案的缺点是相对而言
2021-09-07 10:17:24 732 1
原创 golang面试题(2):for-range特性
下面这段代码输出的内容package mainfunc main() { slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range slice { m[key] = &val } for k,v := range m { fmt.Println(k,"->",*v) }}答案: 3 2 1 p
2021-09-07 09:41:08 136
原创 golang面试题(1):defer的执行顺序
下面这段代码输出的内容package mainimport ( "fmt") func defer_function() { defer func() { fmt.Println("1") }() defer func() { fmt.Println("2") }() defer func() { fmt.Println("3") }() panic("exception")}func main() { defer_function()}
2021-09-06 10:54:59 905
Git-1.9.4-preview20140611
2015-03-19
TortoiseGit_1.8.9.0_x64
2015-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人