Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按照线程启动的顺序获取线程的结果_Java_Android_Multithreading - Fatal编程技术网

Java 按照线程启动的顺序获取线程的结果

Java 按照线程启动的顺序获取线程的结果,java,android,multithreading,Java,Android,Multithreading,我正在使用以下端点从api访问数据:- 1.getProductList 2.getImageurlofProduct/productid 我应该创建一个包含每个产品的productid、productprice和productimageurl的hashmaps的arraylist。从主线程到第一个端点,我生成一个thread-a,当我解析结果时,我从thread a生成线程 但是,这些线程响应threadA的顺序与它们启动时的顺序不同。因此,我最终将产品2的imageurl添加到id为1的产

我正在使用以下端点从api访问数据:-

1.getProductList
2.getImageurlofProduct/productid
我应该创建一个包含每个产品的productid、productprice和productimageurl的hashmaps的arraylist。从主线程到第一个端点,我生成一个thread-a,当我解析结果时,我从thread a生成线程

但是,这些线程响应threadA的顺序与它们启动时的顺序不同。因此,我最终将产品2的imageurl添加到id为1的产品中

我该怎么处理呢。一个算法应该适合我。
如果您想让我澄清更多的问题,请告诉我。如果您使用
执行器来生成线程,您可以保存所有返回的
Future
s,然后按启动时的顺序调用
Future.get()


请在此处阅读更多信息:和。

如果您使用
执行器来生成线程,您可以保存所有返回的
Future
s,然后按启动时的顺序对其调用
Future.get()


请在此处阅读更多信息:和。

+1。在生成
任务
线程时,将
未来
放入
列表
。当所有的
未来的
的回复都为true时,
isDone()
,您就有了有序的结果。+1。在生成
任务
线程时,将
未来
放入
列表
。当所有的
Future
s对
isDone()
的回复都为true时,您将按顺序获得结果。