美文网首页个人学习
Go语言并发简述

Go语言并发简述

作者: 码二哥 | 来源:发表于2020-02-13 09:21 被阅读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呢?

  • 使用Go语言层面的关键字go

  • 将go放到函数前面,即可
    这样的话,该函数在执行的时候,会作为一个独立的并发线程,此种线程在Go语言中被称为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特性

  • channel 是Go语言在语言级别提供的 goroutine 间的通信方式。

  • 可以使用 channel 多个 goroutine 之间传递消息。

  • channel是进程内的通信方式,而不是进程间的通信方式

  • channel是跟类型相关的,也就是说,一个channel只能传递一种类型的值。

2.2、如何创建一个channel呢?

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

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

相关文章

  • Go语言并发简述

    参考:http://c.biancheng.net/view/4356.html 关键点 通过关键词汇,实现快速理...

  • Go语言并发

    Go语言并发 Go语言级别支持协程,叫做goroutine Go 语言从语言层面支持并发和并行的开发操作 Go并发...

  • Go基础语法(九)

    Go语言并发 Go 是并发式语言,而不是并行式语言。 并发是指立即处理多个任务的能力。 Go 编程语言原生支持并发...

  • Go 并发原理

    Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数...

  • Go并发

    并发和并行 Go是并发语言,而不是并行语言。(Go is a concurrent language and no...

  • GO语言初级学习之代码案例13 (QQ群聊)

    @(go语言 黑马)[GO语言] 并发聊天室 题目:利用Go语言高并发的特性,编写一个类似QQ群聊功能的并发聊天服...

  • 第14章-并发性Concurrency

    并发性Concurrency 1.1 什么是并发 Go是并发语言,而不是并行语言。在讨论如何在Go中进行并发处理之...

  • Golang(十四) 并发性Concurrency

    并发性Concurrency 1.1 什么是并发 Go是并发语言,而不是并行语言。在讨论如何在Go中进行并发处理之...

  • Go并发

    Go语言中的并发编程 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很...

  • Go语言的并发,你做对了吗?

    ​ Go语言的并发,你做对了吗? 并发性是go语言一个非常核心的卖点。这一期我们就来看一下,Go语言的并发性。 [...

网友评论

    本文标题:Go语言并发简述

    本文链接:https://www.haomeiwen.com/subject/sqkkfhtx.html