wudanyang

wudanyang

🏢  攻城狮
V2EX 第 151242 号会员,加入于 2015-12-14 13:48:52 +08:00
今日活跃度排名 8003
根据 wudanyang 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
wudanyang 最近回复了
8 天前
回复了 linxuan716 创建的主题 Kubernetes 你认为什么规模的公司适合使用 k8s?
@idblife 也可能他需要,但他不知道
10 天前
回复了 yanjieee 创建的主题 macOS macbook 的键盘大家是怎么按 ctrl 键的
karabiner 将 中/英 改成单击时为 中/英 与其他按键一起按下时为 ctrl
28 天前
回复了 seekseat 创建的主题 MacBook 讨论一下,大家的 Mac 电脑几年一换?
公司有配的电脑 3 年一换,自己的电脑 15 年的 mbp 还在用,看个视频浏览网页还行
看了一下 rust 的 tokio 协程实现。
虽然也是协作式调度,但其原生支持 flavor = "multi_thread" 多线程调度器,支持工作窃取。
还有调度预算机制,用于防止单个任务长期占用线程,从而造成其他任务饿死或延迟。
tokio 不能避免阻塞,只是更加安全一些。

早期 Go 1.14 之前的调度器相当于 协作式调度,协程只在特定时机(如函数调用、通道操作、`time.Sleep`等)主动让出 CPU 。死循环中若没有这些操作,调度器无法抢占执行权。
Go 1.14 之后调度器引入了基于信号抢占 ,即使协程执行死循环,操作系统会向运行该协程的线程发送信号抢占执行权。
@julyclyde #70 一种是 cpu 时间片占满不释放,导致其他请求延迟,导致并发升高,从而导致整个服务崩掉。
还有一种是 cpu 时间片一段时间后被抢占,其他请求虽然有一些影响但是还是会比较快返回。
@julyclyde #65 如果是纯多线程,系统会自动切线程执行,不会让一个线程把整个系统全阻塞住

不过看起来 python 的协程会
@GetMoneyMan #63 很形象了
@julyclyde #65 如果对响应时间敏感的服务呢?
@clemente #58 怎么说?
@cj323 #44 感谢,研究下 gevent
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5604 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 02:43 · PVG 10:43 · LAX 19:43 · JFK 22:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.