在 Go 语言中管理 Concurrency 的三种方式

相信大家踏入 Go 语言的世界,肯定是被强大的并发(Concurrency)所吸引,Go 语言用最简单的关键字go就可以将任务丢到后台处理,但是开发者怎么有效率的控制并发,这是入门 Go 语言必学的技能,本章会介绍几种方式来带大家认识并发,而这三种方式分别对应到三个不同的名词:WaitGroup,Channel,及 Context。下面用简单的范例带大家了解。

WaitGroup

先来了解有什么情境需要使用到 WaitGroup,假设您有两台机器需要同时上传最新的代码,两台机器分别上传完成后,才能执行最后的重启步骤。就像是把一个工作同时拆成好几份同时一起做,可以减少时间,但是最后需要等到全部做完,才能执行下一步,这时候就需要用到 WaitGroup 才能做到。

- 阅读剩余部分 -

Golang math基本数学函数

三角函数

正弦函数,反正弦函数,双曲正弦,反双曲正弦

  • func Sin(x float64) float64
  • func Asin(x float64) float64
  • func Sinh(x float64) float64
  • func Asinh(x float64) float64

一次性返回sin,cos

  • func Sincos(x float64) (sin, cos float64)

余弦函数,反余弦函数,双曲余弦,反双曲余弦

  • func Cos(x float64) float64
  • func Acos(x float64) float64
  • func Cosh(x float64) float64
  • func Acosh(x float64) float64

正切函数,反正切函数,双曲正切,反双曲正切

  • func Tan(x float64) float64
  • func Atan(x float64) float64 和 func Atan2(y, x float64) float64
  • func Tanh(x float64) float64
  • func Atanh(x float64) float64

- 阅读剩余部分 -

Ubuntu 16.04/18.04忘记登陆密码的解决方法

很长时间没有在虚拟机上操作Ubuntu系统了,所以忘记了当初安装Ubuntu系统时设置的登陆密码,经过摸索,找到了解决方法,现在分享出来,给同样需要的人。本文所用的Ubuntu版本是16.04,所用的GNU GRUB是2.02版的。经过测试,它也适用在Ubuntu 18.04下,可以这么说,所有的Ubuntu版本忘记了登陆密码都可以参考本文的方法。

1、开机时一直按着shift键,进入像是windows bios界面一样的界面:
bios界面

- 阅读剩余部分 -

Golang--数据类型

A 基本数据类型

1 布尔类型 bool
1)Go 对于值之间的比较有非常严格的限制,只有两个类型相同的值才可以进行比较,如果值的类型是接口(interface),它们也必须都实现了相同的接口。如果其中一个值是常量,那么另外一个值的类型必须和该常量类型相兼容的。
2)对于布尔值的好的命名能够很好地提升代码的可读性,例如以 is 或者 Is 开头的isSorted 、 isFinished 、 isVisivle 。
3)在格式化输出时,你可以使用 %t 来表示你要输出的值为布尔型。
4)布尔型的值只可以是常量 true 或者 false。

2 数字类型
##有符号整数
int8(-128 -> 127)
int16(-32768 -> 32767)
int32(-2,147,483,648 -> 2,147,483,647)
int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
int( 32 位操作系统上64 位,64 位操作系统64 位)

##无符号整数
uint8(0 -> 255)
uint16(0 -> 65,535)
uint32(0 -> 4,294,967,295)
uint64(0 -> 18,446,744,073,709,551,615)
uint ( 32 位操作系统上64 位,64 位操作系统64 位)

- 阅读剩余部分 -

GitHub 高级搜索

相信大家进入 GitHub 搜索一些资料时,都是下面的步骤:
1,进入网页:
2,搜索栏输入关键字:
3,搜索得到结果:

看似没毛病,确实没毛病。但是我想说的是这样的搜索真的能够搜到你想要的吗?
也许是可以,但是例如上面我搜的 Django 关键词,显示出来的结果有26万条,你能找到想要的吗?即使找到了,得浪费多少时间呢?

- 阅读剩余部分 -