gpt4 book ai didi

java - 线程仅在第二次运行时工作

转载 作者:行者123 更新时间:2023-12-01 23:12:57 24 4
gpt4 key购买 nike

我在 Android 应用程序中有一个单例(工作得很好),在一个函数中,我需要在另一个线程中的类变量中设置数据,但只有在运行该函数两次时才会设置数据。

创建时:

Thread thread;
Runnable runnables;
String recvData;

@Override
public void onCreate() {
super.onCreate();
singleInstance = this;
recvData = "one";
Log.v("oncreate", "singleton");
}

线程数据集:

public String threaded_set_data() {
runnables = new Runnable(){
@Override
public void run() {
recvData = "two";
return;
}
};
thread = new Thread(runnables);
thread.start()
Log.v("Data", recvData);
return recvData;
}

在第一次运行时,它会记录 ("Data", "one") 并且仅在第二次运行时,它才会更改为 ("Data", "two")

我在这里做错了什么?

最佳答案

recvData的默认值为:

recvData = "one";

这里没有什么问题

Log.v("Data", recvData);

刚刚在线程打印第二条日志消息之前打印出来。

关于java - 线程仅在第二次运行时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21606607/

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