腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
网管叨bi叨
专栏作者
举报
272
文章
398505
阅读量
33
订阅数
订阅专栏
申请加入专栏
全部文章(272)
go(137)
编程算法(78)
http(42)
容器(39)
kubernetes(32)
网络安全(28)
laravel(26)
容器镜像服务(21)
php(20)
ide(20)
https(20)
腾讯云开发者社区(15)
数据库(14)
网站(14)
api(13)
java(12)
json(12)
sql(12)
rpc(12)
打包(10)
云数据库 SQL Server(9)
linux(9)
缓存(9)
tcp/ip(9)
云数据库 Redis(8)
git(8)
github(8)
nginx(8)
文件存储(8)
数据结构(8)
存储(7)
开源(7)
etcd(6)
node.js(5)
android(5)
分布式(5)
kernel(5)
uml(5)
windows(5)
微服务(5)
程序员(5)
工具(5)
接口(5)
设计模式(5)
html(4)
jquery(4)
symfony(4)
腾讯云测试服务(4)
面向对象编程(4)
service(4)
工作(4)
函数(4)
开发(4)
python(3)
javascript(3)
spring(3)
单元测试(3)
数据分析(3)
虚拟化(3)
deployment(3)
web(3)
编码(3)
产品(3)
程序(3)
管理(3)
数据(3)
效率(3)
其他(2)
c 语言(2)
bash(2)
bootstrap(2)
ajax(2)
汇编语言(2)
bash 指令(2)
日志服务(2)
命令行工具(2)
运维(2)
压力测试(2)
shell(2)
dns(2)
socket编程(2)
微信(2)
安全(2)
bi(2)
default(2)
goland(2)
kubectl(2)
对象(2)
泛型(2)
服务(2)
互联网(2)
集群(2)
框架(2)
配置(2)
前端(2)
软件(2)
系统(2)
对象存储(1)
负载均衡(1)
c++(1)
ruby(1)
lua(1)
xml(1)
css(1)
单片机(1)
ruby on rails(1)
maven(1)
负载均衡缓存(1)
apache(1)
消息队列 CMQ 版(1)
SSL 证书(1)
数据加密服务(1)
mongodb(1)
日志数据(1)
企业(1)
svg(1)
爬虫(1)
ssh(1)
二叉树(1)
dubbo(1)
jenkins(1)
架构设计(1)
kafka(1)
flutter(1)
unicode(1)
utf8(1)
dart(1)
事件总线(1)
add(1)
bit(1)
buffer(1)
builder(1)
byte(1)
case(1)
channel(1)
chatgpt(1)
com(1)
command(1)
commit(1)
config(1)
db(1)
ddd(1)
dom(1)
elasticsearch(1)
error(1)
field(1)
flags(1)
init(1)
ip(1)
jetbrains(1)
key(1)
module(1)
mysql(1)
nacos(1)
parent(1)
response(1)
select(1)
server(1)
target(1)
testing(1)
thrift(1)
timer(1)
tm(1)
uber(1)
version(1)
volatile(1)
yaml(1)
闭包(1)
编译(1)
并发(1)
测试(1)
产品经理(1)
创业(1)
代码规范(1)
单例模式(1)
二进制(1)
工程师(1)
公众号(1)
行业(1)
后端(1)
基础(1)
技巧(1)
架构(1)
脚本(1)
客户端(1)
路由(1)
内核(1)
日志(1)
设计(1)
事件(1)
算法(1)
索引(1)
需求分析(1)
研发(1)
依赖注入(1)
语法(1)
域名(1)
源码(1)
原型(1)
云原生(1)
指针(1)
重定向(1)
状态机(1)
解释器(1)
搜索文章
搜索
搜索
关闭
《go 语言程序设计》读书笔记(六)Goroutine与系统线程的区别
go
单片机
编程算法
每一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量。这个固定大小的栈同时很大又很小。因为2MB的栈对于一个小小的goroutine来说是很大的内存浪费,比如对于我们用到的,一个只是用来WaitGroup之后关闭channel的goroutine来说。而对于go程序来说,同时创建成百上千个gorutine是非常普遍的,如果每一个goroutine都需要这么大的栈的话,那这么多的goroutine就不太可能了。除去大小的问题之外,固定大小的栈对于更复杂或者更深层次的递归函数调用来说显然是不够的。修改固定的大小可以提升空间的利用率允许创建更多的线程,并且可以允许更深的递归调用,不过这两者是没法同时兼备的。
KevinYan
2020-01-14
449
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档