java - 将数据加载到 Java ExecutorService 的线程中
问题描述
我正在编写服务器以响应相同类型的查询。由于我将有几个客户,我想并行执行任务。在执行任务之前,我需要从文件中加载静态数据——这个过程需要大部分时间。完成后,我可以使用此加载的数据回答任意数量的查询。
我想Executors.newFixedThreadPool(n)
用作 my ExecutorService
,所以它为我管理所有多线程人员。如果我理解正确,线程创建一次,然后我的所有任务都使用这个线程运行。因此,如果可以在创建数据时将数据加载到每个线程并将其用于将使用该线程运行的所有任务,那么它将非常适合我的问题。
这可能吗?
另一个想法是使用 boolean 创建相同数据的多个副本的数组isInUse
。由于并行执行的任务数量是固定的,因此只需选择当前空闲的一个数据实体,将其标记为已占用,并在执行任务结束时将其标记为空闲。但我认为我需要以某种方式在线程之间同步这个布尔参数。
(我需要多份数据,因为它可以在执行任务时修改,但在执行任务后会恢复到初始状态。)
解决方案
推荐阅读
- dialogflow-es - Dialogflow 查询在控制台中工作,但在您使用嵌入式 url 时不工作
- python - 无法识别 Chrome 驱动程序
- html - 在我如何在标题下显示两行一大一小并排之后使用css
- jasper-reports - 具有多页的子报表会中断分页
- python - 如何在元素更改的地方拆分numpy数组
- ubuntu - 使用 sed 在新行上获取匹配的字符串
- javascript - 限制用户使用浏览器后退按钮返回或至少限制反应
- sql - 查找具有范围的表以填充属性
- automated-tests - 如何使用空手道 UI 在 chrome 中查看打印模式
- javascript - 如何知道使用哪个版本的 types 包