Go goroutine
并发和并行
并发
并发表示的是单核运行多个线程(通过CPU轮询实现的,比较损耗CPU,CPU切换的过程)
并行
并行表示的是多核上面运行多线程
goroutine
//协程是轻量级的线程
//共享的堆空间
//独立的栈空间
//在运行某个程序时,如何知道是否存在资源竞争问题。 方法很简单,在编译该程序时,增加一个参数 -race 即可
互斥锁
var lock sync.Mutex // 这里的这个就是申明一个Mutex的变量lock
lock.Lock() // 这个表示锁上
... // 需要锁的操作
lock.Unlock() // 这个表示的是解锁
channel
作用:用来进行不同协程之间的通信
channel的本质是一个队列FIFO
思考
标签:lock,goroutine,并行,并发,Go,CPU From: https://www.cnblogs.com/sqmw/p/17199354.html主线程在等待所有 goroutine 全部完成的时间很难确定,我们应该怎么确定主线程完成的时间