/**
1goroutine 是什么?
goroutine是Go并行设计的核心。goroutine说到底其实就是协程,但是它比线程更小,十几个goroutine
可能体现在底层就是五六个线程,go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需
极少的栈内存(大概是4-5kb),当然会根据相应的数据伸缩。正因为如此,可同时运行成千上万个并发任务。
goroutine比thread更易用、更高效、更轻便。
2创建goroutine
只需要在函数前用调用语句前加go关键字,就可以创建并发执行单元,调度器会自动将其安排到合适的系统线程
上执行。
在并发编程里,我们通常想将一个过程切成几块,然后让每个goroutine各自负责一个工作。当一个程序启动时,
其主函数即在一个单独的goroutine中运行,我们叫它main goroutine。新的goroutine会调用go语句来创建。
*/
package main
import (
"fmt"
"time"
)
func newTask(){
for{
fmt.Println("this is a newTask!!")
time.Sleep(time.Second)//休眠1s
}
}
func main(){
//新建一个协程,新建一个任务
go newTask()
//阻塞运行 不然的newTask还没有运行,main就会运行结束,从而整个结束。
for{
fmt.Println("this is main goroutine!!!")
time.Sleep(time.Second)
}
}