我在玩快速修复,我有一个设计问题。
我在下面的函数中处理收到的消息:
void processFixMessage(Message message){
//do stuff here
}几乎可以肯定的是,我压缩(处理)消息的速度会变慢。我的问题是,有没有一种方法来处理这样的情况,如果我还没有完成一条消息并收到另一条消息,应该由不同的线程处理并开始处理。
发布于 2018-05-09 12:00:34
你可以跳过你的processFixMessage(消息消息)中的线程。根据传入消息的速率和处理单个消息的时间,您可以选择要创建多少个线程。一种方法是创建一个包含n个线程的ThreadPool,并将您的消息解析提交到该池。你可以参考代码:https://www.journaldev.com/1069/threadpoolexecutor-java-thread-pool-example-executorservice https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html
你可以有基于机器的动态线程数: int cores = Runtime.getRuntime().availableProcessors();
https://stackoverflow.com/questions/40939803
复制相似问题