我希望这个问题有很多可能的解决方案,我可以自己提出一些解决方案,其中一些明显优于其他解决方案,但我确定没有一个解决方案是最优的,所以我很想听听那些真正的多线程专家.
我有大约100件可以同时执行的工作,因为它们之间没有依赖关系.如果我按顺序执行这些操作,我的总执行时间大约是1:30.如果我在线程池中对每个工作进行排队,则需要大约2米,这告诉我,我正在尝试一次做太多,并且所有这些线程之间的上下文切换否定了拥有这些线程的优势.
所以基于这个假设(如果这是错误的话,请随时把我击倒)如果我只排队到系统中的核心数(这台机器上有8个),那么任何时候我都会减少上下文切换从而提高整体效率(其他流程线程当然不能承受),有人能建议这样做的最佳模式/技术吗?
顺便说一下,我使用的是smartthreadpool.codeplex.com,但我没有.