gpt4 book ai didi

java - 如果另一个线程尚未完成,则让另一个线程处理进程

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:21 25 4
gpt4 key购买 nike

我正在玩 quickfix,我有一个设计问题。

我在下面的函数中处理收到的消息:

void processFixMessage(Message message){
//do stuff here
}

几乎有一定的机会我使用(处理)消息的速度较慢。我的问题是,有没有办法处理这种情况,如果我还没有完成一条消息并收到另一条消息,一个不同的线程应该启动并开始处理。

最佳答案

您可以在 processFixMessage(Message message) 中跳转线程。根据传入消息的速率和处理单个消息的时间,您可以选择要创建的线程数。一种方法是创建一个包含 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();

关于java - 如果另一个线程尚未完成,则让另一个线程处理进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com