legs+ 发表于 2024-2-3 11:00:48

什么是协程、多线程、多进程:

我们之所以需要分布式系统,是为了摆脱单机资源的束缚。再具体点,是为了解决这两个问题:
[*]单台机器算的慢,哪怕协程、多线程、多进程全用上
[*]单台机器装不下,哪怕你有再多的钱


legs+ 发表于 2024-2-3 11:09:15

直到有一天,给你扔过来 1000 个文件,有些还特别大,好几百 M 了。你用之前的程序一跑,发现跑的时间有点长。于是想要去优化下。



1000 个文件,互相还没业务联系,用多线程呀,一个线程处理一个文件,结果再汇总就搞定了。总算把学校里学的操作系统知识和编程语言里的多线程库都运用起来了。你很高兴,老师知道了也会很欣慰。



如果多线程效果不够好,比如像 Python 的多线程,没法利用多核的威力,那就用多进程。



如果嫌线程和进程切换开销太大,大到影响整体性能 -- 通常就是所谓的 I/O bound 的场景,还可以用协程这类技术。



无论是线程、进程,还是协程,本质上,目的都是为了计算的并行化,解决的是算的慢的问题。



而如果计算量足够大,就算榨干了机器的计算能力,也算不过来,咋办?



一台机器不够,那就多搞几台机器嘛。所以就从多线程/进程/协程的「计算并行化」,进化到了「计算的分布式化」(当然,分布式一定程度上也是并行化)。
页: [1]
查看完整版本: 什么是协程、多线程、多进程: