TypechoJoeTheme

Toasobi的博客

搜索到 8 篇与 的结果 ———笔记归纳
2022-08-01

Golang并发编程笔记

Golang并发编程笔记
同步实现基础暴力就是用time.sleep()了,更好的办法是用sync.WaitGroup来实现goroutine的同步可增长栈os线程通常有固定的栈内存,一个goroutine的栈在其生命周期开始时只有很小的内存(2kb),但是往后其内存不固定,会根据情况自动调整大小,最大可达到1g。一般情况一个go线程用内存很小,所以即是开十万个goroutine也没有啥问题goroutine调度系统GPMgo语言自己实现的一套调度系统。区别于操作系统调度OS线程。1.G很好理解,就是个goroutine的,里面除了存放本goroutine信息外 还有与所在P的绑定等信息。2.P管理着一组goroutine队列,P里面会存储当前goroutine运行的上下文环境(函数指针,堆栈地址及地址边界),P会对自己管理的goroutine队列做一些调度(比如把占用CPU时间较长的goroutine暂停、运行后续的goroutine等等)当自己的队列消费完了就去全局队列里取,如果全局队列里也消费完了会去其他P的队列里抢任务。3.M(machine)是Go运行时(runtime)对操作系统内核线程的虚拟...
2022-08-01

笔记归纳

0 阅读
0 评论
2022年08月01日
0 阅读
0 评论
2022-07-28

7.28 常用标准库 - strconv

7.28 常用标准库 - strconv
strconv包实现了基本数据类型与其字符串表示的转换string与int转换Atoi()string转intfunc Atoi(s string) (i int, err error)Itoa()int转stringfunc Itoa(i int) string补:a在c语言中表示的是array字符数组string转多种类型Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。func ParseBool(str string) (value bool, err error) //它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE; //否则返回错误 func ParseInt(s string, base int, bitSize int) (i int64, err error) //base指定进制(2到36),如果base为0,则会从字符串前置判断, //”0x”是16进制,”0”是8进制,否则是10进制; //bitSize指定结果必...
2022-07-28

笔记归纳

0 阅读
0 评论
2022年07月28日
0 阅读
0 评论
2022-07-28

7.28 常用标准库 - IO操作

7.28 常用标准库 - IO操作
注:该篇文章主要讲解学习心得,详细可以看Golang官方常用标准库文档内容1.1 关于各个参数的类型首先常见的os系列:终端其实是一个文件,相关实例如下:os.Stdin:标准输入的文件实例,类型为*Fileos.Stdout:标准输出的文件实例,类型为*Fileos.Stderr:标准错误输出的文件实例,类型为*File其次是bufio包,其中bufio.NewWriter,bufio.NewReader等方法返回的对象类型为*bufio.Reader然而在真正参数传递的时候,参数类型写io.Reader则可以接收上述所有类型的参数举例:func ReadFrom(reader io.Reader, num int) ([]byte, error) { // 开辟内存空间 p := make([]byte, num) // 将数组读取到变量中 n, err := reader.Read(p) if n > 0 { return p[:n], nil } return p, err } 我们创建一个用来...
2022-07-28

笔记归纳

0 阅读
0 评论
2022年07月28日
0 阅读
0 评论
2022-07-28

7.28 常用标准库 - log

7.28 常用标准库 - log
log包用来实现简单的日志服务1.1.1使用Logger非常简单本包提供一些免去创建对象就可以直接使用的格式化输出方法用log搭配Print等函数输出日志package main import ( "log" ) func main() { log.Println("这是一条很普通的日志。") v := "很普通的" log.Printf("这是一条%s日志。\n", v) log.Fatalln("这是一条会触发fatal的日志。") log.Panicln("这是一条会触发panic的日志。") }Fatal系列函数会在写入日志信息后调用os.Exit(1)。Panic系列函数会在写入日志信息后panic。1.1.2学会配置log标准库中的Flags函数会返回标准logger的输出配置,log标准库提供了如下的flag选项,它们是一系列定义好的常量。const ( // 控制输出日志信息的细节,不能...
2022-07-28

笔记归纳

0 阅读
0 评论
2022年07月28日
0 阅读
0 评论