这是困扰我的问题:
当您使用foreach调度一系列在内容上同质但在处理时间上异质(事先不知道)的任务时,它如何将这些尴尬并行任务按顺序处理?
例如,我注册了4个线程registerDoMC(cores=4),我有10个任务,第4个和第5个任务的处理时间比其他所有任务加起来都长。那么第一批显然是第1、2、3和4个任务。当第1、2和3个任务完成后,foreach如何按顺序分配其他任务?这是随机的吗(从我的观察中似乎是这样的)?如果发现某些任务需要更长的时间来处理,有什么好的做法可以加快速度?
很抱歉没有提供具体的例子,因为我的实际项目/代码涉及更多...
非常感谢任何经验/指导/提示!
当您使用foreach调度一系列在内容上同质但在处理时间上异质(事先不知道)的任务时,它如何将这些尴尬并行任务按顺序处理?
例如,我注册了4个线程registerDoMC(cores=4),我有10个任务,第4个和第5个任务的处理时间比其他所有任务加起来都长。那么第一批显然是第1、2、3和4个任务。当第1、2和3个任务完成后,foreach如何按顺序分配其他任务?这是随机的吗(从我的观察中似乎是这样的)?如果发现某些任务需要更长的时间来处理,有什么好的做法可以加快速度?
很抱歉没有提供具体的例子,因为我的实际项目/代码涉及更多...
非常感谢任何经验/指导/提示!