上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
摘要: package main import ( "fmt" "os" ) // 异常处理 //defer:延迟执行,并且即便程序出现严重错误,也会执行 //panic:主动抛出异常 raise //recover:恢复程序,继续执行 // //func main() { // // defer fmt. 阅读全文
posted @ 2021-06-15 19:13 Palpitate~ 阅读(26) 评论(0) 推荐(0) 编辑
摘要: Mutex Mutex 用于提供一种加锁机制(Locking Mechanism),可确保在某时刻只有一个协程在临界区运行,以防止出现竞态条件。 Mutex 可以在 [sync] 包内找到。[Mutex] 定义了两个方法:[Lock]和 [Unlock](。所有在 Lock 和 Unlock 之间的 阅读全文
posted @ 2021-06-15 19:10 Palpitate~ 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 什么是 select? select 语句用于在多个发送/接收信道操作中进行选择。select 语句会一直阻塞,直到发送/接收操作准备就绪。如果有多个信道操作准备完毕,select 会随机地选取其中之一执行。该语法与 switch 类似,所不同的是,这里的每个 case 语句都是信道操作。我们好好看 阅读全文
posted @ 2021-06-15 19:08 Palpitate~ 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 什么是信道? 信道可以想像成 Go 协程之间通信的管道。如同管道中的水会从一端流到另一端,通过使用信道,数据也可以从一端发送,在另一端接收。 信道的声明 package main import ( "fmt" "time" ) //不同goroutine之间通信 //通过channel实现 func 阅读全文
posted @ 2021-06-15 19:06 Palpitate~ 阅读(41) 评论(0) 推荐(0) 编辑
摘要: go协程 package main import ( "fmt" "runtime" "time" ) //goroutine >协程 2kb大小,100 //线程 》几个m //go协程会复用线程 // goroutine之间通信,通过 信道channel 通信 //go推崇用信道通信,而不推崇用 阅读全文
posted @ 2021-06-15 19:02 Palpitate~ 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Go 是并发式语言,而不是并行式语言。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。 1 并发:同一时间段内,多个任务在执行(单个cpu,执行多个任务) 2 并行:同一时刻,多个任务在执行(多个cpu的支持) 并发是什么? 并发是指立即处理多个任务的能力。一个例子就能很 阅读全文
posted @ 2021-06-15 19:01 Palpitate~ 阅读(40) 评论(0) 推荐(0) 编辑
摘要: package main import "fmt" //定义MySet类型 type MySet map[interface{}]bool //判断元素是否存在 func (m MySet) isExist(a interface{}) bool { return m[a] } //返回set长度 阅读全文
posted @ 2021-06-15 18:57 Palpitate~ 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 结构体 package main import "fmt" //结构体:一系列属性的集合 //定义结构体(在包中定义了) //7 定义一个结构体,内涵匿名字段(字段没有名字) 匿名字段类型就是字段名,所有类型不能重复 //type Person struct { // string // int / 阅读全文
posted @ 2021-06-15 18:55 Palpitate~ 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 数组 package main import ( "fmt" ) //数组:数组是同一类型元素的集合。可以放多个值,但是类型一致,内存中连续存储 // Go 语言中不允许混合不同类型的元素 func main() { //1 数组的定义,数组的大小,在定义阶段就确定了,而且不能改 //定义了一个大小 阅读全文
posted @ 2021-06-15 18:54 Palpitate~ 阅读(42) 评论(0) 推荐(0) 编辑
摘要: // switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块。它可以被认为是替代多个 if else 子句的常用方式 package main func main() { //1 基本使用 //num:=4 //switch num { //cas 阅读全文
posted @ 2021-06-15 18:46 Palpitate~ 阅读(37) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页