gpt4 book ai didi

mysql - 单处理器系统中的多线程程序

转载 作者:行者123 更新时间:2023-11-29 00:12:23 25 4
gpt4 key购买 nike

我有一个线程问题。

假设我有一个单核处理器和一个单线程程序,而同一个程序是多线程的。

我是否可以安全地假设在单处理器系统中,如果线程不断地做一些工作而不是等待或休眠,单线程程序将比多线程程序运行得更好?

同样对于一个多核处理器系统它会改变吗?因为它是一个多线程程序而不是多进程程序。来自同一进程的线程能否利用系统的多处理器,或者它们将在同一处理器中运行?如果它们在同一个处理器中运行,那么上面的答案将满足这个问题

这个问题是我在用mysql的时候想到的。在 mysql 中,每个连接都有一个进程和多个线程,对吗?如果是这种情况,那么在单处理器系统中,如果我同时运行 2 个查询,那么它会比一个接一个地运行 2 个查询花费更多的时间吗?

最佳答案

多线程可以使用多个处理器。

如果这样可以加快应用程序:取决于应用程序。锁定多个处理器非常昂贵。因此,如果您需要在线程之间进行大量同步,那么这将成为瓶颈。如果每个线程都能为自己工作,这肯定会加快应用程序的速度。

同样在单处理器系统上:使用多线程会降低整体速度(如果只是工作)但通常会提高响应时间(因为此类系统的主要目标是在工作线程中工作,同时保持 GUI react 灵敏)。

对于 MySql,我不是专家。基本上,如果您执行两个查询(只读访问!),那么它们应该更快。如果您进行写访问,查询可能需要同步(并且可能会运行得更慢)。

此外,您需要确保数据库本身对于所需的访问是多线程安全的(速度和安全性之间总是存在权衡...)。如果你需要大量的突变,有时使用单线程会更快......

关于mysql - 单处理器系统中的多线程程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433529/

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