2012-01-06 1 views
0

각각의 테스트 케이스 매개 변수 다음에 오는 입력에서 x 검사 케이스를 읽어야한다고 가정합니다. 어떻게 새 스레드를 만들고 그 안에 테스트 케이스를 실행하고 마지막으로 테스트 케이스가 오는 순서대로 결과를 인쇄 할 수 있습니까? System.in에서커팅 실행 시간을 위해 다른 스레드에서 테스트 케이스를 실행

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

여기서 처음 숫자는 일차 입력 값 등 NUM, 가정한다 나타내는 숫자를 포함하는 각 테스트 케이스에 3 시험 예 다음에, 테스트 케이스의 수를 제공 각각에 대한 논리는 합계를 인쇄하는 것입니다. 결과는 다음과 같습니다. 6 3 55

이 작업은 일반적으로 입력을 순차적으로 읽고 방법을 수행하고 인쇄하여 수행 할 수 있습니다. 비용이 많이 드는 작업으로 인해 프로그램 실행 시간이 늘어날 경우. 그럼 어떻게 다른 스레드에서 각각의 테스트 케이스를 실행하고 6 3 55처럼 결과를 출력 할 수 있습니까? 스레드가 종료 될 때마다 인쇄하지 않아도됩니다. 나는 내 영어가 이해할 수 있기를 바랍니다 ...... BTW에는 클래스에 대한 인스턴스 변수가 없습니다.

--- 이것은 junit 또는 다른 테스트 목적이 아닙니다. 하나의 프로그램은 음영 부분을 입력으로하여 출력을 제공합니다. 나는 이런 경우에 쓰레드로 프로그램을 최적화하는 것과 비슷하다.

답변

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은이를 지원한다.) 또한 대부분의 자바 중심 빌드 도구 (예 : maven, ant)는 junit 테스트를 쉽게 실행할 수 있도록 지원합니다.

+0

미안, 난 사실이 아닌 테스트 용, 또는 JUnit을위한 프로그램을 실행하기위한 부탁 해요. 하나의 프로그램은 음영 부분을 입력으로하여 출력을 제공합니다. 나는 좀더 복잡한 스레드를 사용하여 프로그램을 최적화하는 것과 비슷하다. – cypronmaya