routine

command module
v0.0.0-...-f040508 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2023 License: MIT Imports: 3 Imported by: 0

README

routine

go的goroutine示例

首先明确几个概念:

  • go程(goroutine)
官方的解释在这里:https://go.dev/doc/effective_go#goroutines
Go程(goroutine):是由Go运行时管理的轻量级线程。

根据官方对goroutine的解释,总结如下(仅供参考):

# 为什么会有goroutine?
被称为goroutine,是因为现有的术语,如:线程、协程、进程等表达的不准确。
# goroutine到底是什么?
goroutine是一个函数,有goruntime管理的轻量级线程。
# goroutine是什么样的函数?
1.拥有一个简单模型的函数:在同一个地址空间与其他goroutine同时运行。
2.比分配栈空间更轻量级、开销更小。
# 怎么区分是goroutine函数还是普通函数?
函数前带go关键字的是goroutine函数,不带go关键字的是普通函数。
  • 信道(channel)
信道是带有类型的管道,你可以通过它用信道操作符<-来发送或者接收值。
默认情况下,发送和接收操作在另一端准备好之前都会阻塞。这使得Go程可以在没有显式的锁或竞态变量的情况下进行同步。
  • select
select语句使一个Go程可以等待多个通信操作。
select会阻塞到某个分支可以继续执行为止,这时就会执行该分支。当多个分支都准备好时会随机选择一个执行。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL