golang并发编程是什么


本文摘自php中文网,作者(*-*)浩,侵删。

简而言之,所谓并发编程是指在一台处理器上“同时”处理多个任务。

Golang语言中,并发使用的协程的机制,实现起来也是十分的方便,使用go关键字即可。 (推荐学习:go)

1

2

3

4

5

6

7

func main() {

    ...

    go fun(){

        fmt.Println("Hi, Here is a goroutine.")

    }()

    ...

}

什么是Goroutine

goroutine是Go并行设计的核心。goroutine说到底其实就是协程,它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。

执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine比thread更易用、更高效、更轻便。

一般情况下,一个普通计算机跑几十个线程就有点负载过大了,但是同样的机器却可以轻松地让成百上千个goroutine进行资源竞争。

Goroutine的创建

只需在函数调?语句前添加 go 关键字,就可创建并发执?单元。开发人员无需了解任何执行细节,调度器会自动将其安排到合适的系统线程上执行。

在并发编程中,我们通常想将一个过程切分成几块,然后让每个goroutine各自负责一块工作,当一个程序启动时,主函数在一个单独的goroutine中运行,我们叫它main goroutine。新的goroutine会用go语句来创建。

go语言的并发设计,让我们很轻松就可以达成这一目的

以上就是golang并发编程是什么的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

golang调试工具有哪些?

redis的bitmap如何在golang中使用

百万年薪程序员必会的6种技能,你懂几种?

这可能是最容易理解的 go mutex 源码剖析

一周 go world 新鲜事

分享一个golang http 验证码示例

使用gin封装一个web脚手架(五):实现session(上)

go实现安全并发map读写

golang context 详解

dbatool-dodba

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...