37 条回复  ·  4054 次点击
mooyo 小成 3 天前
计算密集型肯定是更慢的,协程主要是方便让一个程序更好的写成“正确的”并发模式。
fanxinxiaozhan 初学 3 天前
cpu 密集型用线程,io 密集型用协程
fgwmlhdkkkw 小成 3 天前
@MrKrabs 这种情况在 go 里面也是一样啊,全是计算的时候,go 也没办法打断吧。
hefish 小成 3 天前
op 哥,你碰到了一个杠精面试。pass 吧。。。
000sitereg 初学 3 天前
其实也没那么复杂。一般又通俗的理解就是计算机的东西越底层效率越高,协程基于线程就不可能比线程的效率高。
DIO 小成 3 天前
我面试过一个号称某大厂主任级别的技术管理,结果我们聊关于国内外( b 站,油管等)视频下载技术问题。我不太懂但是市面上有这么多盗版视频,总不能都是内部泄漏的吧,就觉得肯定有办法。他让我回去好好看看,说现在大厂都有办法杜绝任何方式扒源。。。
testcgd 小成 3 天前
你们不在一个频道上啊,你应该一顿 gmp 叭啦叭啦上去糊他一脸 没有啥是协程能做线程不能做的,用户态写个协程库就等态了 1 、协程是为了提高资源利用率和减少上下文切换的开销 2 、c++也有协程,只是不是语言层面上的
kingcanfish 小成 3 天前
@qxdo1234 #3 https://github.com/Tencent/libco 微信的 cpp 协程库 还有 这面试官水平太臭
Flourite 小成 3 天前
水货 1. goroutine 也是要线程来运行的啊,性能只会一样 2. linux 线程栈空间 8M ,相关上下文切换需要保存的寄存器等资源比 g 更多 3. 让他看新闻,c 跟 cpp 都有 coroutine
xjzshttps 小成 3 天前
线程成本高: * 线程堆栈占用内存大 * 线程切换成本高,是需要内核才能切换 协程成本低: * go 的堆栈是动态的,最初只会使用很小的内存空间 * go 协程切换是用户态的,成本低 另外 go 适合 io 密集型的,原生线程适合计算密集型。
返回顶部