1

run()このプログラムをJavaで試していますが、メソッドにすべてを入れても出力が得られません

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());
    }

}    

テスト.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);
    }
}

私がやりたいことは、2 つのスレッドを使用してファイルから行を読み取り、取得したものを表示したいということです。私はJavaが初めてです

編集

start()メソッドを使用していませんでした。使用した後でも start()、ファイルから2行しか読み取らずに停止します。何が問題なのですか?

4

4 に答える 4

4

あなたstart()のスレッドにする必要があります。

また、複雑なテーマであるため、先に進む前にJavaのスレッドと同時実行に関する優れたチュートリアルを読むことをお勧めします。

于 2013-02-04T12:48:22.627 に答える
1

スレッドをstart() 拡張するのではなく、Runnable を実装することをお勧めします。

ところで: 信じられないほど速く入力しない限り、スレッドの使用の違いはわかりません。スレッドの開始と終了には約 0.1 ミリ秒かかるため、それよりもはるかに速く入力しない限り、違いはありません。

于 2013-02-04T12:49:08.143 に答える
1

スレッドを開始する必要があります:

(new Test(br.readLine())).start();

また、joinスレッドが作成される前にメインスレッドが実行を終了するため、スレッドが終了するのを待つためにいくつか追加する必要があります。

于 2013-02-04T12:49:20.597 に答える
1

それらを開始する必要があります:

        (new Test(br.readLine())).start();
        (new Test(br.readLine())).start();
于 2013-02-04T12:49:30.793 に答える