add concurrency

main
Your Name 2024-07-03 02:05:02 +08:00
parent d4aef966b6
commit 29dadd85fe
4 changed files with 60 additions and 0 deletions

9
Concurrency/Concurrency Normal file
View File

@ -0,0 +1,9 @@
并发的介绍
golang是天然支持高并发的语言
并发:同一时间内执行多个任务
并行:同一时刻执行多个任务
golang的并发通过goroutine实现goroutine是用户态的线程由go的运行时runtime调度而线程是通过操作系统去调度。
最终还是放在操作系统的线程去执行,只不过管理(上下文切换)放在用户态,所以开销较小。
golang提供channel用来在多个goroutine之间进行通信。

View File

@ -0,0 +1,5 @@
package main
func main() {
}

3
strconv/strconv Normal file
View File

@ -0,0 +1,3 @@
strconv标准库
在golang这种强类型语言中不支持不同类型的数据类型强制转换。

43
strconv/strconv.go Normal file
View File

@ -0,0 +1,43 @@
package main
import (
"fmt"
"strconv"
)
func main() {
//从字符串解析出整形
str := "10000"
retInt64, err := strconv.ParseInt(str, 10, 64) //均转换成int64
if err != nil {
fmt.Println(err)
}
fmt.Printf("%v,%T\n", retInt64, retInt64)
//转换成int类型
retInt, _ := strconv.Atoi(str)
fmt.Printf("%v,%T\n", retInt, retInt)
//将数字转换成字符串类型
i := int32(97)
ret := fmt.Sprintf("%d", i)
fmt.Printf("%#v\n", ret)
//数字转换成字符串类型
iInt := int(i)
retStr := strconv.Itoa(iInt)
fmt.Printf("%#v\n", retStr)
//字符串转换成bool类型
boolstr := "true"
boolV, _ := strconv.ParseBool(boolstr)
fmt.Printf("%v,%T\n", boolV, boolV)
//字符串解析成浮点类型
floatstr := "1.234"
floatV, _ := strconv.ParseFloat(floatstr, 64)
fmt.Printf("%v,%T\n", floatV, floatV)
}