Java-url.openStream无法使用多线程
当我试图从url读取Java-url.openStream无法使用多线程,java,Java,当我试图从url读取json文本时,这是一个明显的问题。我在URLReader的main函数中进行了测试,它返回的文本很好。但是,当我在线程中调用类外的方法时,IDE没有报告任何异常s或消息,直到我追溯到URLReader public static String loadText(String path) throws Exception { URL url = new URL(path); try (BufferedReader in = new BufferedRead
json文本时,这是一个明显的问题。我在URLReader
的main
函数中进行了测试,它返回的文本很好。但是,当我在线程中调用类外的方法时,IDE没有报告任何异常
s或消息,直到我追溯到URLReader
public static String loadText(String path) throws Exception {
URL url = new URL(path);
try (BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()))) { /* <--- where it goes wrong */
String inputLine;
String lines = "";
while ((inputLine = in.readLine()) != null) {
lines += inputLine;
} return lines;
}
}
-----------------------------------这里有一些代码---------------------------------------
该线程看起来像:
Thread t = new Thread(new Runnable(){
public void run() {
try { Update.updateRecord(); }
catch (Exception e) {}
}
});
t.start();
可能是什么问题
编辑:
如前所述,我有几个线程以及线程t
。当我离开时,t.start()代码>单独运行时,它可以完美地工作,但不能与其他线程一起工作
Thread t1, t2, t;
/* defined runnable() here */
t1.start(); t2.start(); t.start(); // <--- went wrong
t.start(); // <--- perfectly
螺纹t1、t2、t;
/*此处定义了runnable()*/
t1.start();t2.start();t、 start();// 显式问题是由一行System.exit(0)引起的代码>来自另一个线程
解释了如何退出线程,否则,exit(0)
将中断进程,而不仅仅是线程。我不知道这是否与您的问题有关,但在Runnable
中,您捕获了一个异常,没有对其进行任何处理。我没有看到对loadText()的任何调用
在classUpdate
@ortisTicker.last()
中根据json文本返回一个双精度值。我在这里不能太明确。@knh170您需要向我们展示API.Ticker.last()
@manouti的代码。我有几个与Thread t
并行的线程调用。当我注释行t1.start()时;t2.start()代码>和离开t.start()代码>,工作顺利。
Thread t1, t2, t;
/* defined runnable() here */
t1.start(); t2.start(); t.start(); // <--- went wrong
t.start(); // <--- perfectly