加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 单个执行程序的单独执行队列,用于跟踪剩余的数据

发布时间:2020-12-15 02:18:21 所属栏目:Java 来源:网络整理
导读:在我的Jetty服务中,我有一个触发大量线程的端点.我目前正在使用ThreadExecutorPool来执行我的Runnables.但我希望能够知道每个针对端点的单个请求剩余多少个作业,并允许多个并发请求. 我的想法是为每个请求做一个单独的队列,并有一些执行器,它只是以循环方式
在我的Jetty服务中,我有一个触发大量线程的端点.我目前正在使用ThreadExecutorPool来执行我的Runnables.但我希望能够知道每个针对端点的单个请求剩余多少个作业,并允许多个并发请求.

我的想法是为每个请求做一个单独的队列,并有一些执行器,它只是以循环方式从每个队列中拉出来.我想知道这样的东西是否存在,开箱即用.

请注意,我不关心执行顺序.我关心的是每个请求(即会话)都给予相同的时间,并且对于每个会话,我可以找出尚未启动/完成的线程数.

所以我猜一个MultiQueueExecutor或类似的东西?

解决方法

But I want to be able to know how many jobs are remaining for each individual request to the endpoint and allow for multiple concurrent requests.

我会恰当地将您的期货与ExecutionCompletionService结合使用.如果您使用ECS,您的网络请求将在每个任务完成后立即得到通知,以便他们始终知道剩余的任务数量.

What I do care about is that each request (i.e. session) is given equal time and that,for each session,I can find out how many threads have not yet been started/completed.

那么“平等时间”并不能得到保证,并且在将作业提交给线程池时,存在竞争条件,因为它具有FIFO性质.此解决方案是否有效取决于您对相关信息的处理方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读