2012-01-06 11 views
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テストケース続いて、テストケースの数を与え、各テストケースの最初のライン等の入力値のNUMを示す番号が含まれ、仮定する それぞれのロジックが合計を出力することになります。ここで結果は6 3 55

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

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

答えて

1

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

あなたの質問を理解できないかもしれません。 ThreadPoolExecutorおよび/またはFuturesを調べることをお勧めします。

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

+0

もしあなたがいくつかのコードを示し、実際の例が作成しやすくなるかもしれません。 –

+0

実際に私はこのコードをhttps://gist.github.com/1565740にしようとしていますが、 – cypronmaya

0

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

+0

申し訳ありませんが、私は実際にはないテスト目的のために、またはJUnitのために、プログラムを実行するために求めています。 1つのプログラムは陰影部分を入力として出力します。私はこのような場合にスレッドを使ってプログラムを最適化するようにもっと似ています – cypronmaya

関連する問題