如何保证GPars线程池中任务的执行/显示顺序?

缺口

我正在使用Gpars线程池运行一组任务。任务执行时间变化很大,从几秒钟到20分钟不等。(这些是黄瓜功能文件FWIW。)

幸运的是,features列表中的最后一个任务花费了最长的时间,因此,当所有其他线程均已完成时,整个过程将在此处执行runtest('australian_government_rebate.feature')25分钟。

这意味着多线程无法实现其承诺。单线程测试需要65分钟才能运行,多线程测试需要48分钟。我希望有30分钟或更长时间。

我的解决方案是按先前的执行时间对功能文件进行排序:

features = ...
features.sort { a, b -> b.executionTime() <=> a.executionTime() }
GParsPool.withPool(noOfCores) {
    features.eachParallel { feature ->
        runtest(feature)
    }
}

我的问题是:我可以保证功能按出现的顺序呈现给GParsPoolfeatures吗?

瓦茨拉夫运气不好

对于这种情况,我建议使用从“功能”排序的集合而不是并行集合的顺序for循环内开始的数据流任务:

PGroup group = ...
for(f in features) group.task {runtest(it)}

这将保证您想要的启动顺序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Futures.addCallback如何保证回调在执行未来任务的线程上执行?

来自分类Dev

在(clojure的内部)线程池中执行任务的惯用方式?

来自分类Dev

如何在多个线程中执行任务比在主线程上顺序执行慢100倍?

来自分类Dev

线程池中的并行递归任务

来自分类Dev

通过任务执行程序服务将任务提交到线程池中的线程时,如何确保一次只有一个线程可以占用一个同步任务?

来自分类Dev

如何保证任务在当前线程上同步运行?

来自分类Dev

如何保证任务在当前线程上同步运行?

来自分类Dev

如何按顺序执行定时任务?

来自分类Dev

boost :: io_service如何保证处理程序执行顺序

来自分类Dev

如何保证随机数量的promise的执行顺序?

来自分类Dev

如何用线程解决任务执行问题?

来自分类Dev

如何按顺序执行线程组

来自分类Dev

RMI是否保证执行顺序?

来自分类Dev

TaskScheduler.Default是否不总是保证任务将在池线程上执行?

来自分类Dev

如何从python中的线程池中唤醒线程?

来自分类Dev

如何从python中的线程池中唤醒线程?

来自分类Dev

如何计算线程池中线程的有效执行时间,而不是线程的生命周期?

来自分类Dev

如何从池中挑选最快的计算机来执行计算任务

来自分类Dev

任务执行顺序

来自分类Dev

并行任务执行顺序

来自分类Dev

CUDA线程执行顺序

来自分类Dev

我可以在线程池中运行后台任务吗?

来自分类Dev

Spring 计划任务在多个线程池中重叠

来自分类Dev

Sidekiq是否适合于高度关键任务,需要一次性执行保证,需要单线程执行的任务?

来自分类Dev

如何控制不相关的Alteryx IO任务的执行顺序?

来自分类Dev

保证生成将被顺序执行吗?

来自分类Dev

Task.Factory.StartNew保证执行顺序

来自分类Dev

如何实现多线程并并行执行几个任务?

来自分类Dev

如何在剩余线程完成工作的同时执行任务

Related 相关文章

  1. 1

    Futures.addCallback如何保证回调在执行未来任务的线程上执行?

  2. 2

    在(clojure的内部)线程池中执行任务的惯用方式?

  3. 3

    如何在多个线程中执行任务比在主线程上顺序执行慢100倍?

  4. 4

    线程池中的并行递归任务

  5. 5

    通过任务执行程序服务将任务提交到线程池中的线程时,如何确保一次只有一个线程可以占用一个同步任务?

  6. 6

    如何保证任务在当前线程上同步运行?

  7. 7

    如何保证任务在当前线程上同步运行?

  8. 8

    如何按顺序执行定时任务?

  9. 9

    boost :: io_service如何保证处理程序执行顺序

  10. 10

    如何保证随机数量的promise的执行顺序?

  11. 11

    如何用线程解决任务执行问题?

  12. 12

    如何按顺序执行线程组

  13. 13

    RMI是否保证执行顺序?

  14. 14

    TaskScheduler.Default是否不总是保证任务将在池线程上执行?

  15. 15

    如何从python中的线程池中唤醒线程?

  16. 16

    如何从python中的线程池中唤醒线程?

  17. 17

    如何计算线程池中线程的有效执行时间,而不是线程的生命周期?

  18. 18

    如何从池中挑选最快的计算机来执行计算任务

  19. 19

    任务执行顺序

  20. 20

    并行任务执行顺序

  21. 21

    CUDA线程执行顺序

  22. 22

    我可以在线程池中运行后台任务吗?

  23. 23

    Spring 计划任务在多个线程池中重叠

  24. 24

    Sidekiq是否适合于高度关键任务,需要一次性执行保证,需要单线程执行的任务?

  25. 25

    如何控制不相关的Alteryx IO任务的执行顺序?

  26. 26

    保证生成将被顺序执行吗?

  27. 27

    Task.Factory.StartNew保证执行顺序

  28. 28

    如何实现多线程并并行执行几个任务?

  29. 29

    如何在剩余线程完成工作的同时执行任务

热门标签

归档