个人学习

Go语言并发简述

2020-02-13  本文已影响0人  码二哥

参考:
http://c.biancheng.net/view/4356.html

关键点

通过关键词汇,实现快速理解,记忆目的

1、Go语言的并发特性是从语言层面支持的 ?
Go 语言直接通过语言级的关键词go 就可以实现并发,这样的话,相比于其他操作系统层面的线程更加轻量

2、Go语言的goroutine线程有什么不同
A、goroutine是由Go语言的运行时runtime调度完成的,线程是由操作系统层面调度完成的

1、Goroutine介绍

Go语言层面实现了Goroutine之间的内存共享。

1.1、如何创建Goroutine呢?

1.2、如何用goroutine呢或者说,使用goroutine的常见的几种写法

//go 关键字放在方法调用前新建一个 goroutine 并执行方法体
go GetThingDone(param1, param2);

//新建一个匿名方法并执行
go func(param1, param2) {
}(val1, val2)

//直接新建一个 goroutine 并在 goroutine 中执行代码块
go {
    //do someting...
}

因为 goroutine 在多核 cpu 环境下是并行的,如果代码块在多个 goroutine 中执行,那么我们就实现了代码的并行。

注意
上面提到的 go 直接 添加 代码块方式 是不允许的。

go 代码块 协程方式

2、channel介绍

2.1、channel特性

2.2、如何创建一个channel呢?

注意点:
必须使用make来创建

ci := make(chan int)
cs := make(chan string)
cf := make(chan interface{})

上一篇 下一篇

猜你喜欢

热点阅读