golang进程(主线程)与协程
概念
主线程:golang 中的主线程(在go中主线程就是进程,相比与其他编程语言叫法不一样)
协程:golang中协程是轻量级的线程(相比于其他语言,只有进程和线程);python中有进程和线程的概念,也有协程的概念;python中的协程通过async 来实现
并发与并行的概念
并发:在一个cpu上有10个线程,每个线程10毫秒(进行轮番操作),从人的角度看,好像这10个线程都在运行,单重微观来看,在某一个时间点只有一个线程在执行,这就是并发。
并行:在多个cpu上(例如10个cpu)有10个线程在执行,每个线程执行10毫秒(各自在不同的cpu上执行),从人的角度上来看,这10个线程都在执行,从微观角度来看,这10个显示也是都在执行,这就是并行。
go语言协程简单实现
package main import ( "fmt" "strconv" "time" ) func GoPrintTest(){ for i := 0;i < 3;i++ { fmt.Println("协程执行:" + strconv.Itoa(i)) time.Sleep(1 * time.Second) } } func main(){ // 通过 go 关键字启动一个协程 go GoPrintTest() for i := 0;i < 3;i++ { fmt.Println("主线程执行:" + strconv.Itoa(i)) time.Sleep(1 * time.Second) } }
博客里大都是转载的内容,其目的主要用户知识的组织和管理。