[英]How to wait for one task to finish before in java?
我有一个字符串,我正在解析它并将其存储到JsonArray,然后对其进行迭代。 有一个竞争条件,我的解析器未完成,控件继续前进。 我希望这先完成然后继续。
我试图等待并通知。 它不起作用。
Response res = run(el);
JsonParser parser = new JsonParser();
JsonElement jsonTree = parser.parse(res.body().string());
try {
wait();
} catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println("jsontree : "+ jsonTree);
JsonArray array=jsonTree.getAsJsonArray();
notifyAll();
if(jsonTree.isJsonArray()) {
System.out.println("I am JSONARRAY");
}
for(JsonElement element: array) {
count++;
System.out.println("count "+ count);
}
现在,jsonTree为空,它看起来像这样: []
。 我希望jsonTree具有对象。 有什么建议么?
默认情况下,Java是逐行执行的,即默认情况下其本质上是同步的。 这意味着解析器一旦完成,就只会移动到下一行。 您将不需要任何异步方式来实现它。 只需检查您的响应obj和解析器的正确性即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.