我对线程有点困惑。如果我有一个文件服务器并且它由N个CPU组成,那么最大用户模式线程数应该是为了最大化服务器性能。其他进程不会干扰线程。我的意见是每个cpu 1个线程就足够了,因为如果我们产生更多,那么我们将不得不等待I / O操作完成。如果我们创建更多线程,那么我们将浪费资源,并将被阻止,直到其他线程完成。我不确定我们是否尝试将文件读取或存档到另一个分区或另一个驱动器,如果我们可以为此生成一个新线程。你能分享你的意见吗?
答案 0 :(得分:2)
CPU吞吐量的最佳线程数与CPU数完全相同,这正是您命名的原因。 (虽然这对于超线程带入图片的花哨的“部分”核心变得更加复杂,但基本规则仍然或多或少地存在。)
在现实世界中,如果您在进程中的任何位置阻塞了I / O,那么拥有额外的线程可以帮助有效地重叠CPU处理和I / O处理。