线程在 python 中真的很重要吗?

Do threads really matter in python?

正如标题所说,因为在 Python 中我们有 GIL,它说在任何时候只有一个线程可以执行代码,这意味着单独的线程并不真正 运行并行,而是 "interlaced" 但仍然只使用 CPU.

的单个核心

这不是基本上破坏了线程的整个概念吗?由于使用线程进行并行化并不完全可行,因为它们实际上并不 运行 并行?

我找到了一些关于这个的答案,但没有一个明确解决这个问题,如果问题的这个具体方面已经得到回答,我深表歉意。

不完全是。 GIL 将阻止计算量大的线程同时执行,并且不会提供那么多的性能提升。

另一方面,非计算任务(例如文件 I/O)可以是多线程的,以大大提高性能。想象一下,您必须编写 40 个文件。如果计算机可以处理一次写入 20 个文件,那么使用多线程可以比阻塞和写入每个文件更快地完成写入。