问题描述
我正在使用 https://github.com/iota-community/java-iota-workshop/blob/master/src/main/java/com/iota/ReadData.java 中的 ReadData 类通过哈希值(bundlehash)从 Iota Tangle(本质上是一个分布式网络)检索消息。
这是我的方法:
private String readMessageFromHash(String BundleHash) {
final String[] s = new String[]{""};
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
s[0] = ReadData.getTMessage(BundleHash);
} catch (Exception e) {
e.printstacktrace();
}
}
});
thread.start();
try {
thread.join();
} catch (InterruptedException e) {
e.printstacktrace();
}
return s[0];
}
我需要在下一行代码中返回值,但没有多线程我的程序崩溃。 使用多线程它有时可以工作,但大多数时候它不起作用(返回一个空字符串)。
我尝试使用:
thread.start();
try {
while(s[0].length < 1){}
thread.join();
} catch (InterruptedException e) {
e.printstacktrace();
}
return s[0];
但它只是无限循环。
我认为问题在于我的程序等待网络响应的时间不够长。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)