wangbjun / blog

本人博客的Hexo源码和配置,https://wangbjun.site/
http://wangbjun.site
0 stars 1 forks source link

浅谈Golang并发编程 | JWang的博客 #137

Open wangbjun opened 2 years ago

wangbjun commented 2 years ago

https://wangbjun.site/2021/coding/golang/concurrence-programing.html

说到并发和并行,很多人容易混淆,虽然在大部分时候他们俩的意思都差不多,但实际上还是有很大区别。如果非得说明白,我觉得先从并行和串行这个2个单词说起更加容易理解,因为这2个单词很多人都熟悉,在编程里面所谓串行就是一个一个去执行,而并行则是指同时去执行。 举个例子:如果你需要调5个接口获取数据,每个接口耗时1s,那么串行总共需要5s来执行,但是并行顾名思义同时去执行,则可以同时去调用,那么总共只需要1

shaojs321 commented 1 year ago

使用Wait,那go的协程是不是得等所有协程全部执行完毕才能结束啊,如果其中某个协程时间很长,不是会影响最终效果吗(看到了可以把大任务拆分为小任务,那就要求程序开发的时候估算这个接口的并发量有多大,是这个意思吗)

协程之间通信那段有点没看懂,不管用channel还是另外定义一个变量,数据只要没释放永远在内存里,并不会降低空间,时间的话都用协程,差不多。应该是channel可以自动释放存入的数据,这样内存占用就不会变高,而自定义变量的话就不行,除非自己写一个自动释放的逻辑,但有轮子就不必要自己造了。

不太懂go的东西,不知道讲得对不对!