java - 在异步多线程环境中维护时间顺序
问题描述
我的代码中有来自交易所的 1000 种不同股票的股票价格流。由于更新数量非常多,我需要使用多线程环境来处理价格更新。
在一个简单的世界中,我将有一个作业队列和一组处理队列的工作线程。然而,在现实世界中,我不能这样做,因为我需要维护个股更新的时间顺序。
一个简单的解决方案是使用散列算法,每次看到更新时将特定股票分配给同一线程。不幸的是,如果我这样做意味着我需要了解我的每只股票的更新率,以确保我的线程保持忙碌(每只股票的更新率不是恒定的)。如果我不这样做,某些线程可能会饱和,而其他线程则处于空闲状态。
有谁知道迎合这个问题的模式?
解决方案
推荐阅读
- svn - 使用 TortoiseSVN 将文件从一个目录粘贴到签出目录给出“错误:文件已存在”
- amazon-web-services - Terraform AWS 存储桶策略文档,ARN 已更改
- jquery - 为什么 Jquery Ui 在 iphone 的 safari 上不起作用?
- css - /deep/ 概念多页效果相同的 scss 。但我不希望角度中的一页效果
- python - Python 请求很慢并且需要很长时间才能完成 HTTP 或 HTTPS 请求
- sql-server - 多个 sql 作业成功时发送电子邮件通知
- javascript - React.js 使用地图时创建新行
- c++ - 当该数组的索引中没有元素时,指针指向的是什么?
- docker - 是否可以将 awslog 与 gitlab-ci 自动缩放运行器一起使用?
- typescript - 在 Typescript 中返回 Promise 的 Promise 不会编译