V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wanguorui123  ›  全部回复第 91 页 / 共 242 页
回复总数  4837
1 ... 87  88  89  90  91  92  93  94  95  96 ... 242  
2022-09-25 20:47:13 +08:00
回复了 sunny1688 创建的主题 程序员 对协程的理解
作者:匿名用户
链接: https://www.zhihu.com/question/538436096/answer/2536546723
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

有栈协程是真的给你开了一个栈,例如一个 2K 大小的栈,这个栈用起来跟真正的线程栈是差不多的,像 go 那种有栈协程方案就是自己搞了一套类似操作系统调度线程的方案,只不过其分配的栈很小,调度也不需要线程切换,而且各种调度策略都可以针对场景优化。而目前主流的无栈协程方案(例如 C++,C#,Rust 等),是把一个协程函数编译成状态机的逻辑,然后用一块临时分配的堆内存去保存这个函数里的变量和协程状态机以及上下文等内容,这区别就很明显了。首先它只用保存你用到了的变量,而不是所有协程就直接开一个栈,比如我只用了一个 int ,那就只用存一个 int ,而不用去开一个 2k 的栈。说白了,无栈就是按需用内存,用状态机+按需保存的方式来让函数可以保存自己执行到哪个位置,能访问哪些变量。而有栈就是不管需求,直接给个大栈让你用,甚至其中某些方案基本就等于把操作系统调度线程的那套方案移到了用户态。所以无栈不管从效率,内存占用看当然是更优的方案,但是无栈需要编译器支持,有栈只需要编写同一套上下文切换的代码,而无栈没有编译器支持就必须手写切换的部分(因为这些部分是跟执行的程序逻辑有关的,例如状态机转换),不管是对实现者还是使用者都不够友好。而且如果你想把一些老代码用协程跑起来,通常移植到有栈协程上比无栈也要相对简单,现在主流的无栈协程基本都需要进行侵入式的修改,比如要加 asnyc await 等关键字标记等等,而像 Go 的协程直接 hook 系统调用,你在 go 程里阻塞等于让出协程执行权,这样可以几乎不用修改就能用协程并发跑一些老的,没有使用协程的同步阻塞代码。所以有栈方案没有被无栈干掉,而是两者都有人用。
2022-09-25 20:18:40 +08:00
回复了 mitu9527 创建的主题 程序员 HTTP 2.0 对内网服务之间的通信是不是没啥帮助?
本地确实提升不大
2022-09-25 16:38:23 +08:00
回复了 memeda123 创建的主题 宽带症候群 四川电信免费升级千兆
2022-09-25 16:35:13 +08:00
回复了 memeda123 创建的主题 宽带症候群 四川电信免费升级千兆
又问了,这个活动不会改套餐,之前有个 5G 升级活动才会改套餐
2022-09-25 15:42:29 +08:00
回复了 sisuer1129 创建的主题 Apple IP14 的 wifi 芯片,还是万年不变的 80hz 2x2 吗?
主要是博通的芯片授权贵,苹果不愿意交专利费
2022-09-25 15:30:55 +08:00
回复了 mmddisa 创建的主题 iOS iPad 一直上传大量数据
是不是安装了不太好的证书签名?
2022-09-25 15:27:14 +08:00
回复了 memeda123 创建的主题 宽带症候群 四川电信免费升级千兆
刚问了,原来的不限制流量会自动转为超量后收费
2022-09-25 15:16:28 +08:00
回复了 memeda123 创建的主题 宽带症候群 四川电信免费升级千兆
掉公网 IP 吗?
2022-09-24 09:22:38 +08:00
回复了 ersansan233 创建的主题 问与答 大家用的最耐用的商品是什么?
iPad Mini 2 快 10 年了,厨子看了都要流泪
2022-09-23 09:16:04 +08:00
回复了 Phil1024 创建的主题 iPhone 现在 5G 还是鸡肋吗
等 6G
2022-09-23 09:10:52 +08:00
回复了 oblivion 创建的主题 宽带症候群 江苏电信 5000M 宽带体验
上行:1000Mbps 才是重点
2022-09-22 15:06:27 +08:00
回复了 Aurora0 创建的主题 MacBook Pro MacBook Pro 14 寸 10 月会更新吗
@gromit1337 有 FaceID 就剁手
HomeLab 用 Debian ,云上用 ubuntu
2022-09-21 08:42:49 +08:00
回复了 wyfyw 创建的主题 NVIDIA 4090 牛逼!
定价和厨子一个尿性
2022-09-20 17:29:17 +08:00
回复了 Vndi 创建的主题 Apple 预测下一代 iPhone ( iPhone 15)的几个大概率升级点
@fluffyfoxxo 说错了应该北斗双向应急短信
2022-09-20 17:11:35 +08:00
回复了 MrLQX 创建的主题 问与答 9 月 24 到 29 号去哪游玩才不会被隔离或者劝返
塞尔达海拉鲁大陆一日游
2022-09-20 17:07:51 +08:00
回复了 cubarco 创建的主题 Apple 2022 年了,阻碍你离开 iPhone 的原因是?
懒的换手机,一个 iPhone 用 3-5 年,也不折腾
2022-09-20 17:01:21 +08:00
回复了 Vndi 创建的主题 Apple 预测下一代 iPhone ( iPhone 15)的几个大概率升级点
√ 3nm A17
√ 8G RAM
√ 原生 4800W 直出
? USB-C
?北斗导航
2022-09-20 16:58:04 +08:00
回复了 PendingOni 创建的主题 职场话题 [感想]-貌似国内现在用.Net 技术的大厂很少
个人用 C#相当不错,可惜微软生态发展慢,JAVA 底子不好但是轮子太多一样玩的风生水起
1 ... 87  88  89  90  91  92  93  94  95  96 ... 242  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3028 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 64ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.