package main
import ( "fmt" "time" )
func readygo() {
fmt.Println("left")
}
func main() {
go readyGo() //开启协程 使用关键字go
time.Sleep(1) //暂停1秒 让协程有时间返回数据
fmt.Println("right")
}
-- 创建多个协程
package main
import (
"fmt"
"time"
)
func num() { //每1秒输出一个数字 1 2 3 4 5
for i := 1; i <= 5; i++ {
time.Sleep(1000 * time.Millisecond)
fmt.Printf("1s: %d\n", i)
}
}
func abc() { //每1.5秒输出一个字母 a b c d e
for i := 'a'; i <= 'e'; i++ {
time.Sleep(1500 * time.Millisecond)
fmt.Printf("1.5s: %c\n", i)
}
}
func main() {
go num()
go abc()
time.Sleep(10000 * time.Millisecond) //观察num的3秒-4秒和abc的3秒-4.5秒
fmt.Println("main terminated")
}
package main
import (
"fmt"
"runtime"
)
func loop() {
for i := 0; i < 3; i++ {
if i == 1 {
runtime.Gosched() //让出时间片
fmt.Printf("i'm out\n") //(3)
// runtime.Goexit() //退出当前协程
}
fmt.Printf("%d\n", i) //(1) (4)(5)
}
}
func main() {
go loop() //开启协程
for i := 0; i < 2; i++ {
runtime.Gosched() //让出时间片,先让别的协程loop()执行
fmt.Println("let' go") //(2) (6)
}
}
来源:https://www.cnblogs.com/cheesemp/p/10558158.html