
let-us-go
文章平均质量分 95
pirlo-san
这个作者很懒,什么都没留下…
展开
-
Go语言的rune类型
定义// rune is an alias for int32 and is equivalent to int32 in all ways. It is// used, by convention, to distinguish character values from integer values.type rune = int32rune是int32的别名类型,用于存储Unicode编码的单个字符,字符串需要用[]rune表示。rune字面量常规可显示字符字符必须是Unicode编码原创 2020-11-24 09:57:01 · 972 阅读 · 0 评论 -
Go例程与操作系统线程的区别
Item线程Go例程栈大小固定大小,一般为2MB变长大小,初始大小一般为2KB,运行时视需要扩展,最大可达1GB调度器内核调度器scheduler,每隔一段时间会有一个硬件定时器超时,导致scheduler被调用,scheduler会中断当前线程,并保存线程上下文,切换到另外的线程执行,每次调度都涉及用户态/内核态的切换Go语言自带的调度器,采用m:n调度,即将...原创 2020-03-04 09:20:49 · 306 阅读 · 0 评论 -
GOMAXPROCS含义与用法
1 含义Go调度器(scheduler)用来决定Go例程最多可以在多少个线程上执行,在m:n调度机制里面,GOMAXPROCS就是那个n。2 默认值操作系统CPU数3 哪些任务不需要占用线程sleeping的Go例程由于通信阻塞的Go例程4 哪些任务需要占用线程阻塞在I/O或其他系统调用的Go例程调用非Go函数的例程,如CGO一般的活跃Go例程其中,前两种任务虽然占用...原创 2020-03-04 08:30:46 · 3714 阅读 · 0 评论 -
使用Golang发送邮件
背景CloudUSN/UNC版本共源,需要对共源隔离文件进行看护,在出现异常时给代码提交人自动发送邮件。golang包gomail实现func SendHuaweiMail(from string, to []string, cc map[string]string, subject string, body string, attaches []string) error { m :...原创 2020-01-14 12:49:37 · 661 阅读 · 0 评论 -
Golang单元测试与覆盖率
1 概述C/C++和Java(以及大多数的主流编程语言)都有自己成熟的单元测试框架,前者如Check,后者如JUnit,但这些编程框架本质上仍是第三方产品,为了执行单元测试,我们不得不从头开始搭建测试工程,并且需要依赖于第三方工具才能生成单元测试的覆盖率。相比之下,Go语言官方则提供了语言级的单元测试支持,即testing包,而且仅通过go工具本身就可以方便地生成覆盖率数据,也就是说,单元原创 2017-12-27 23:22:06 · 12065 阅读 · 0 评论 -
Golang命令行参数解析:flag包的用法及源码解析
1 命令行参数的定义命令行参数用于向应用程序传递一些定制参数,使得程序的功能更加丰富和多样化。命令行标志是一类特殊的命令行参数,通常以减号(-)或双减号(–)连接标志名称,非bool类型的标志后面还会有取值。以git log命令为例,例如我们要观察最近的10条commit记录,且要显示每条记录修改的文件信息:git log --stat -n 10其中的--stat和-n 10就是原创 2018-01-20 17:06:03 · 7766 阅读 · 0 评论