golang 为什么高并发
16lz
2021-01-22
GO语言在WEB开发领域中的使用越来越广泛,Hired 发布的《2019 软件工程师状态》报告中指出,具有 Go 经验的候选人是迄今为止最具吸引力的。 (推荐学习:go)
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。
go为什么能做到高并发
goroutine是Go并行设计的核心。
goroutine说到底其实就是协程,但是它比线程更小,几十个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。
执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。
也正因为如此,可同时运行成千上万个并发任务。goroutine比thread更易用、更高效、更轻便。
一些高并发的处理方案基本都是使用协程,openresty也是利用lua语言的协程做到了高并发的处理能力,PHP的高性能框架Swoole目前也在使用PHP的协程。
协程更轻量,占用内存更小,这是它能做到高并发的前提。
更多相关文章
- golang 内存泄露的原因
- go语言数据类型转换教程
- Go语言中GOROOT、GOPATH、GOBIN详解
- golang 协程占多大内存
- 从go语言闭包谈函数式编程
- go语言中函数与方法介绍
- Go语言使用正则表达式提取网页文本
- go语言环境vim配置详解
- Go语言的内存模型介绍