簡體   English   中英

Java:多線程無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM