并发
Go的做者选择了消息传递模型来做为推荐的并发编程方法。该语言一样支持共享内存,而后做者自有道理:
编程
该语言提供了两个基本的构件来支持这一范型:goroutines和channels。
Go例程
Goroutine是轻量级的并行程序执行路径,与线程,coroutine或者进程相似。然而,它们彼此至关不一样,所以Go做者决定给它一个新的名字并 放弃其它术语可能隐含的意义。
建立一个goroutine来运行名为DoThis的函数十分简单:
并发
匿名的函数能够这样使用:
函数
这些goroutine将会经过Go运行时而映射到适当的操做系统原语(好比,POSIX线程)。
通道类型
有了goroutine,代码的并行执行就容易了。然而,它们之间仍然须要通信机制。Channel提供一个FIFO通讯队列恰好能达到这一目的。
如下是使用channel的语法:
post
举例来讲,若是咱们想要进行长时间运行的数值计算,咱们能够这样作:
操作系统
阅读全文>>线程