Goroutines

go build 为生产环境构建应用

go run 以低开销运行(和gobuild相比)

go mod init

Concurrency 和 Parallelism

并发和并行

并发:做多件事情,但是并不是在同一个时间去做。

在一个给定的时间,仅仅在做一件事情。

并行:在同一时间做多件事情。

Goroutines经常与线程进行比较,但是有两个主要的不同。

线程由OS管理,Goroutines由Go运行时管理。

Go运行时可以发射更多的线程而不用得到操作系统的许可。

这就是为什么这门语言在云上更加的流行,因为在云环境下我们有不少这样的线程,

我们可以利用这些。

操作系统负责分配线程。

在线程里,有一个固定的1MB大小的固定栈。

Goroutine的线程大小只有2KB。

可以想象在有限的内存里,能够启动多少线程。

在一个有限量的内存里,并且每一个线程可以负责获取更多的数据。

内存是有限的情况下,可以发起多少线程。每个线程负责获取更多的数据。

可能你请求了12个API,你可以发起每个线程来从那些API中获取数据。那将完成得更快。

a motto(标语,箴言,座右铭)

Do not communicate by sharing memory;

instead,share memory by communicating.

goroutine被创建仅仅通过添加一个关键字go,发出一个线程,将进一步负责执行。

没有说什么时候返回,你从不等待它返回。

但是从来不知道什么时候返回,你从不等待它返回。

问题是我们没有等待线程和主方法停止执行。

有一个包sync,这个包提供基本的基元,例如mutual,exclusion,locks。其它的Once和Waitgroup。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值