Multithreading 如何使用多线程来迭代包含多条记录的列表
我有一个200条记录的列表。对于该列表中的每条记录,我需要调用一个API REST(findOrderByID)来接收完整的数据。问题是这个过程需要10秒以上的时间,我想使用多线程来缩短时间 用于我的列表的迭代Multithreading 如何使用多线程来迭代包含多条记录的列表,multithreading,listiterator,executors,Multithreading,Listiterator,Executors,我有一个200条记录的列表。对于该列表中的每条记录,我需要调用一个API REST(findOrderByID)来接收完整的数据。问题是这个过程需要10秒以上的时间,我想使用多线程来缩短时间 用于我的列表的迭代 // My list with ~200 registers for (Order order: orderList.getID()) { OrderRestVO response = findOrderByID(order.getID); //Calling an API
// My list with ~200 registers
for (Order order: orderList.getID()) {
OrderRestVO response = findOrderByID(order.getID); //Calling an API method
}
我的问题是,我如何利用多线程优化我的搜索?这段简单的代码怎么会这么慢?我猜你会用每个ID点击数据库,然后取回数据??如果是,,为什么不创建一个新的调用,在其中传递所有ID并返回OrderRestVO列表…它将比多线程更快,因为在多线程的情况下,您仍然需要执行多个DB点击,而在这里您只执行一个,但我现在无法创建新的Web服务,这是我在我的应用程序中唯一的解决方案应用程序。@Rohittomas虽然您的评论通常是有意义的,OP明确地告诉您这是一个REST API调用。因此,如果您仍然使用多线程,那么在读取记录时在表上创建锁仍然需要时间…因此,如果您希望做出重大改进,我建议在sql中执行脏读…有回退…但只要您只是读取值,它就不应该成问题