golang对比其它语言最大的优势就是并行计算(一个go就能实现并发),工作中经常遇到并发的场景, 具体实现并发的方式有多种,今天就来做个小实验来对比说明串行和并行执行任务中并发的优势,好了直接上代码

这里假设要完成十个耗时的任务,每个任务需要500ms或者随机时间,分别用串行和两个并行函数来完成; 

串行执行的顺序就是每个任务执行完才能执行下个任务,并行执行就是十个任务同时执行不分先后(可以认为同时开始),

使用计时器对每个函数执行时间进行度量, 

main 启动后,查看控制台上结果的输出:

从控制台上我们可以看到串行执行的话,每个任务500ms ,总任务执行了5s ,

并行执行的话,两个并行并没有顺序,每个任务500ms,总任务也可以认为是500ms,

串行的代码10行,并行的代码分别为 15行和20行 ,相比之下时间上后者是前者的1/10,这就是并行的巨大优势,因此我们要多审视自己的代码,避免偷懒,面对高并发场景下才能实现高效完成任务; 

 新增循环中使用管道chanel的形式