考虑一个大任务,它可以分解成数百个独立运行的小任务。更具体地说,每个小任务都是发送一个轻量级的网络请求并决定从服务器收到的答案。这些小任务预计不会超过一秒钟,并且总共涉及几台服务器。
我想到了两种使用 Executor 框架来实现它的方法,我想知道哪个更好以及为什么。
- 创建一些,比如 5 到 10 个任务,每个任务都涉及进行大量发送和接收。
- 为每个发送和接收创建一个任务(可调用或可运行),并安排所有任务(数百个)由执行程序运行。
很抱歉,如果我的问题表明我懒得测试这些并亲自看看什么更好(至少在性能方面)。我的问题,在寻找这个具体案例的答案时,有一个更普遍的方面。在这种情况下,当您想使用执行器来执行所有调度和其他事情时,创建大量小任务还是将它们分组为更少数量的大任务更好?