5.2 go goruntine的创建

/**
  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)
	}
	
}

 

上一篇:GO精髓(goroutine并发安全与锁)


下一篇:Go语言调度器之盗取goroutine(17)