gpt4 book ai didi

java - 如何停止当前线程直到其他线程完成执行?

转载 作者:行者123 更新时间:2023-11-29 06:42:36 26 4
gpt4 key购买 nike

这是我的问题...

 public static String response = "";   

'

 public static String sendDataToServer(String data)
{
new Thread()
{
public void run()
{
//sending data to server
response = httpClient.execute(httppost, new BasicResponseHandler()).trim();
}

} .start();

return response;

}

当我调用此方法时,我得到空字符串作为响应。

String res = sendDataToServer("my_data");  //res is always empty string
//...XXXXXXX code after calling the method

并且总是在完成 sendDataToServer() 方法执行之前执行 XXXXX 代码。为什么 res 总是空的?我如何获得正确的响应字符串?如何在执行 sendDataServer() 方法之前停止正在执行的 XXXX 代码?谢谢。

最佳答案

你可以这样做:

Thread t = new Thread() {
public void run() {
//sending data to server
response =
httpClient.execute(httppost, new BasicResponseHandler()).trim();
}
};
t.start();
t.join();

这样您将等到线程完成,然后继续。

但是,请记住等待线程完成在 Android 中是危险的,尤其是在 UI 线程(即主线程)中。但是,我假设该线程不在 UI 线程中,否则 AsyncTask 会是更好的解决方案(并且更原生)。

关于java - 如何停止当前线程直到其他线程完成执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750303/

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