[英]Java : multi threading not working
我正在用Java嘗試該程序,但是將所有內容都放入run()
方法時沒有任何輸出
Main.java:
public class Main {
static int line;
static boolean ret = true;
static BufferedReader br;
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File f = new File("tere.dat");
// boolean ret = f.createNewFile() ;
br = new BufferedReader(new FileReader(f));
new Test(br.readLine());
new Test(br.readLine());
}
}
Test.java:
public class Test extends Thread {
private String input;
static int thread_count = 0;
public Test(String l)
{
input = l;
}
public void run()
{
System.out.println("Checking from other class : This was printed from file :>>");
System.out.println(input);
String upper = input.toUpperCase();
System.out.println("");
System.out.println("The String in all UpperCase :" + upper);
}
}
我想做的是,我想使用兩個線程從文件中讀取行,然后顯示我得到的任何內容。 我是Java新手
編輯 :
我沒有使用start()
方法。 盡管即使在使用start()
它也僅從文件讀取2行並停止。 可能是什么問題呢 ?
您必須start()
您的線程。
另外,我建議在繼續之前閱讀Java線程和並發性的很好的教程,因為它是一個復雜的主題。
您需要使用start()
啟動線程。我建議您不要擴展Thread而是實現Runnable。
順便說一句:除非您輸入得太快 ,否則您將看不到使用線程的區別。 啟動線程和完成線程大約需要0.1毫秒,因此,除非您鍵入的速度快得多,否則沒有什么區別。
您需要啟動線程:
(new Test(br.readLine())).start();
而且,您還必須添加一些join
以等待線程完成,因為您的主線程將在創建線程之前完成執行。
您必須啟動它們:
(new Test(br.readLine())).start();
(new Test(br.readLine())).start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.