繁体   English   中英

如何在Java中等待一项任务完成?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM