gpt4 book ai didi

multithreading - 为什么线程可能被认为是 "evil"?

转载 作者:行者123 更新时间:2023-12-03 11:06:40 26 4
gpt4 key购买 nike

我正在阅读 SQLite FAQ ,然后看到了这段话:

Threads are evil. Avoid them.



我不太明白“线程是邪恶的”这句话。如果这是真的,那么替代方案是什么?

我对线程的粗浅理解是:
  • 线程使并发发生。否则,将浪费 CPU 马力,等待(例如)慢速 I/O。
  • 但坏处是您必须同步您的逻辑以避免争用,并且您必须保护共享资源。

  • 注:由于我不熟悉 Windows 上的线程,我希望讨论仅限于 Linux/Unix 线程。

    最佳答案

    当人们说“线程是邪恶的”时,通常是在说“进程是好的”的上下文中这样做的。线程隐式地共享所有应用程序状态和句柄(并且线程局部变量是可选的)。这意味着在访问共享数据时有很多机会忘记同步(或者甚至不明白您需要同步!)。

    进程有独立的内存空间,它们之间的任何通信都是显式的。此外,用于进程间通信的原语通常根本不需要同步(例如管道)。如果需要,您仍然可以使用共享内存直接共享状态,但这在每个给定实例中也是明确的。所以犯错的机会更少,代码的意图更明确。

    关于multithreading - 为什么线程可能被认为是 "evil"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1191553/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com