我试图找到确定线程池大小的等待时间和执行时间的简单示例。根据布莱恩·戈茨的说法:
对于可能等待I / O完成的任务 - 例如,任务 从套接字读取HTTP请求 - 您将需要增加 池大小超出可用处理器的数量,因为没有 所有线程都将一直在工作。使用分析,您可以 估计a的等待时间(WT)与服务时间(ST)的比率 典型的要求。如果我们将此比率称为WT / ST,则为N处理器 系统,您希望保留大约N *(1 + WT / ST)个线程 处理器得到充分利用。
我真的不明白他的输入/输出是什么意思。谁在做I / O任务。
答案 0 :(得分:1)
想象一下从磁盘读取一些数据的任务。实际发生了什么:
整个任务需要0.1秒才能完成。其中0.1%10%用于第1步和第3步,其余90%用于第2步。因此0.01s是“工作时间”,等待磁盘花费0.09s“等待时间”。