chan与mutex

close通道

  1. 关闭通道后,接收通道,可以接受到通道所对应值类型的默认值,如:string是空串、int是0、bool是false
  2. 关闭通道后,向通道内发送数值,程序抛出异常

mutex

  1. lock必须先加锁再解锁,再次加解锁要等上次加解锁完成
    • Wait(): goroutine等待
    • Signal():从goroutine等待列表(FIFO)中唤醒一个
    • Broadcast():唤醒goroutine等待列表中所有goroutine

once

  • once的实现是由一个mutex和一个atomic计数器组成
  • 当执行Do()时,将方法加锁后判断计数器是否是初始值,如是则计数器+1并执行函数方法,否则跳过

你可能感兴趣的:(go,golang)