我目前正在学习多线程、线程、线程池等。我已经读过线程的数量不能超过您计算机拥有的逻辑处理器的数量(或者至少没有任何优势,因为您的 CPU 无法处理更多)。
那么,如果您编写的代码在具有 12 个逻辑处理器的计算机上创建了数百个线程,那么预期的行为是什么?他们排队吗?他们会互相等待吗?或者它会给你一个错误?如果您的进程可以从 100 个连续运行的线程中受益,但只有 12 个内核,那么处理这个问题的最佳方法是什么?我经常打开我的任务管理器,看到数百个进程和数千个线程正在运行。这是如何运作的?
另外,如果我在 Windows 中运行一个程序,同时运行一堆其他应用程序(即 Chrome、MS Excel、Skype 等),也许还有一堆后台服务(即 Windows Defender、 Wifi 服务等...)这些其他应用程序是否占用了逻辑处理器,从而减少了我的线程程序可用的逻辑处理器数量?