如果我在具有 1 个线程的 vps 服务器上运行 2 个线程的应用程序会发生什么?

And*_*lev 0 python multithreading vps

对于我未来的项目,我希望我的应用程序在具有 1 个线程的 Linode/UpCloud vps 上 24/7 全天候运行。我的应用程序将线程 python 库用于多个任务,如果我在 1 个线程上运行该应用程序会发生什么?谢谢!

Ali*_*jad 5

简答:

它会运行良好。例如

  • 线程 1 获得 CPU
  • 线程 2 获得 CPU
  • 线程 1 获得 CPU
  • 线程 1 获得 CPU
  • 线程 2 获得 CPU

解释:

多线程并不一定意味着它也是多处理的。如果只有一个 CPU 和一个线程,那么您的应用程序中的线程将(几乎)轮流运行。而且这个上下文切换会非常快,你甚至感觉不到。

编辑(感谢 Barmar 的评论):

它被称为“分时”,这就是当计算机只有一个 CPU 时多个进程的工作方式。