1、go channel
channels 是 go 协程routines之间通信的方式,更为安全,为什么这么说,他可以理解为管道, 虽然任何语言可以使用共享变量的方式, 但是更加推荐使用channel,说到管道,读者可以理解一下大学里面学的操作系统,无论linux和windows都有进程通信管道的方法。 使用 go func() 来启动协程,所以go语言在这方面比c++和java有更多的优势。
c := make(chan int)
可以使用make 来生成线程间或协程间的通道
2、协程协程方式是充分利用线程的方式之一,openMP是充分利用多核的优势。在go里面,可以使用
runtime.GOMAXPROCS(3)
来指定协程的启动数目,我们不能在语言层面指定调度,这个是底层调度。
3、案例package main
import (
"runtime"
"fmt"
"time"
)
func main(){
runtime.GOMAXPROCS(3)
c := make(chan int)
go sayT1(c)
time.Sleep(time.Second)
c
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?