0

入力から読み取るx個のテストケースがあり、各テストケースパラメーターの後にが続くとします。新しいスレッドを作成してその中でテストケースを実行し、最終的にテストケースの順序として結果を出力するにはどうすればよいですか。

Ex:
3 
3
1 2 3
2
1 2
10
1 2 3 4 5 6 7 8 9 10

ここで、System.inの最初の数値は、テストケースの数を示し、その後に3つのテストケースが続きます。各テストケースの最初の行には、入力値の数などを示す数値が含まれています。それぞれのロジックは、合計、ここでの結果は6355になります

これは通常、入力を順番に読み取り、メソッドを実行し、印刷することで実行できます。時間のかかる操作でプログラムの実行時間が長くなる場合。したがって、各テストケースを異なるスレッドで実行し、結果を6 3 55のように印刷するにはどうすればよいですか。スレッドが終了するたびに、印刷しないでください。私の英語が理解できることを願っています......ところで、クラスのインスタンス変数はありません。

---これはjunitやその他のテスト目的ではありません。出力を与える入力として影付きの部分を持つ1つのプログラム。私はこのような場合のためにスレッドでプログラムを最適化することを求めるようなものです

4

2 に答える 2

1

これは、まっすぐなThreadPoolExecutorhttp://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.htmlのように聞こえます。入力を受け取り、Runnableであるオブジェクトを作成します。それをThreadPoolExecutorに送信してから、出力をSystem.outに表示させてRunnableを完了させます。

または多分私はあなたの質問を理解していません。ThreadPoolExecutorやFuturesを調べることをお勧めします。

この男には良い例があります: http ://www.vogella.de/articles/JavaConcurrency/article.html#threadpools

于 2012-01-06T05:10:41.430 に答える
0

junitのようなものを使用してテストケースをセットアップすると、テストを並行して実行できます(junitにはこれに対するサポートが組み込まれています)。さらに、ほとんどのJava中心のビルドツール(maven、antなど)は、junitテストを簡単に実行するためのサポートを備えています。

于 2012-01-06T04:16:10.187 に答える