当前位置: 首页 > 知识库问答 >
问题:

如何在执行器服务中使用数据队列

弘浩瀚
2023-03-14

我正在学习Executor服务,并试图了解如何与线程池中的线程共享数据列表。我的runnable方法需要从列表中读取数据并进行处理。

   Runnable runnable = () -> {
      System.out.println("Inside : " + Thread.currentThread().getName());
      process(list.take());
    };
  ExecutorService executor = Executors.newFixedThreadPool(threadCount);
  executorService.submit(runnable);

池中的所有线程应该只处理一次列表中的不同元素

共有1个答案

荣轶
2023-03-14

您可以循环查看列表中的每个元素,并将其提交给执行者:

<代码>列表。forEach(e-

 类似资料:
  • 问题内容: 我已经写了一个bash脚本foo.sh 我想在我的远程服务器上执行它。我尝试了,它起作用了。 之后,我像这样更改了test.sh文件 现在,我想传递一个本地参数以与我的脚本一起执行,但是当我键入它时会返回一个错误。 如何通过脚本传递参数? 问题答案: 使用该选项,该选项强制(或任何POSIX兼容外壳程序)从标准输入而不是从第一个位置参数命名的文件中读取其命令。而是将所有参数都视为脚本的

  • 问题内容: 我有一个非常简单的Python文件python1.py,其内容为: 我希望从JavaScript执行此操作,如下所示: 但是,所有发生的是,我得到了警告,向我显示了Python脚本的内容。没有创建文件C:\ Temp \ test.txt,因此很明显,Python未执行。 我如何说服代码执行Python脚本,而不仅仅是阅读它? 问题答案: 您是否可以直接从浏览器执行脚本。与jquery

  • 假设有两个微服务:订单和库存。order service中有一个API,它接受< code>ProductId 、< code>Qty等并下订单。 理想情况下,只有在库存服务中存在库存时才允许下订单。人们建议使用Saga模式或任何其他分布式事务。这很好,最终将利用一致性。 但是如果有人想滥用这个系统。他可以使用无效或缺货的产品(< code>ProductId)推送订单。系统将接受所有这些订单,并

  • 所以我使用executorservice创建了一个线程池。 我试图访问线程池队列中的任务数。我看到没有办法得到它。我知道有一些方法来获取线程池执行器中的队列大小,但是我如何使用执行器服务对象来实现这一点。 就像我说的,如果我创建了一个像这样的线程池执行器,我可以得到队列信息 我知道我可以使用tpExecutor。队列size()获取线程池队列中的任务数。但目前我已经使用Executor服务声明了我

  • 我已经将一个数据库从mysql迁移到SQL Server(politics),这是使用UTF8的原始mysql数据库。 现在我读到https://dba.stackexchange.com/questions/7346/sql-server-2005-2008-utf-8-collation-charsetSQL服务器2008不支持utf8,这是一个笑话吗? SQL Server承载多个数据库,大

  • 我最近设置了一个Laravel队列系统。最基本的是cronjob调用一个命令将作业添加到队列中,并调用第二个命令发送电子邮件。 当我通过ssh连接到服务器并运行php artisan queue:listen时,系统会工作,但如果我关闭终端,侦听器就会关闭,作业会堆积起来并在队列中等待,直到我通过ssh重新连接并再次运行listen。 保持队列系统在后台运行而不需要通过ssh保持连接打开的最佳方法