异步vs多线程

本文关键字:多线程 vs 异步 | 更新日期: 2023-09-27 18:04:24

我读了这个问题异步vs多线程-是否有区别,并在谷歌搜索差异。

使用异步而不是多线程的好处是什么?何时使用异步而不是多线程?

异步vs多线程

如果您的任务可以使用异步编程完成,那么最好使用异步编程,而不是使用多线程编程。有三个原因:-

1:遵守

在多线程中,CPU或w/e必须在线程之间不断切换。所以,即使你的线程什么也不做,只是坐在那里(或者更可能的是,做一个比较,看看一个条件是否为真,这样它就可以得到一个与它被创建时要做的事情相同的条件),CPU仍然会切换线程,进程需要一些时间。我不认为那会很糟糕,但是你的表现肯定会受到影响。

2:简单&简洁

而且,也许只有我这样认为,但是异步编程对我来说似乎更自然。在你问之前,不,我不是JS的粉丝,但仍然。不仅如此,您还会遇到共享变量和线程安全等问题——所有这些都可以通过使用异步编程和回调来避免。

3:线程

的烦人实现

在Python中有一个非常可怕的东西叫做GIL(全局解释器锁)。基本上,Python不允许实际运行并发线程。此外,如果您正在考虑在多核CPU上运行线程程序,请忘记它。

c#中可能也有警告,我不知道。这只是我的两分钱……


尽管如此,异步和多线程确实没有可比性。虽然多线程可以(低效率地)用于实现异步,但它是获得并发性的一种方式,而异步是一种编程风格,如OOP(面向对象编程)。