Go并发编程 Channel
一、前言 传统的线程模型,比如经常使用Java、C++、Python编程的时候,需要多个线程之间通过共享内存(比如在堆上创建的共享变量)来通信。这时候为保证线程安全,多线程共享的数据结构需要使用锁来保护,多线程访问共享数据结构时候需要竞争获取锁,只有获取到锁的线程才可以存取共享数据。这种情况下使开发人员更加容易的使用线程安全的数据结构,比如Java中JUC包中的并发安全的队列、列表等。 前面章节我们讲解了Go中提供的低级同步原语-锁,其实Go的并发原语 – goroutines和channels 提供了一种优雅而独特的结构化开发并发软件的方式。Go鼓励使用通道在goroutine之间传递对共享
用户评论