2014-11-04 2 views
0

나는 X라는 메인 클래스와 두 개의 Y와 Z 클래스를 만들었습니다. Y와 Z는 Runnable 클래스를 구현합니다. 클래스 X는 Y와 Z에서 액세스 할 수있는 정적 배열 A를 포함합니다. 클래스 Y의 run() 메소드는 입력 파일을 읽고 벡터 A를 채 웁니다. Z 클래스의 run() 메소드는 벡터 A에 저장된 데이터를 사용하여 일부를 처리합니다 데이터.자바 스레드에 대한 간단한 의문

이 문제로 스레드의 사용 목적은 다음과 벡터 A가 클래스 Y의 run() 방법에 충전 될 때, 클래스 Z의 run() 방법은 벡터 (A)에서 수신 된 값을 처리한다

이렇게하려면 클래스 X의 기본 메소드에서 다음 호출을 수행하십시오.

public static void main(String[] args) { 

Y objectY = new Y();   
Thread threadInput = new Thread(objectY); 

threadInput.start(); 

Z objectZ = new Z();   
Thread threadOut = new Thread(objectZ); 

threadOut.start(); 

맞습니까? 예상되는 결과를 얻었지만 코드가 실제로 병렬 처리되는지는 알 수 없습니다. 병렬 처리되지 않은 경우 어떻게 처리해야합니까?

답변

1

예, 코드는 주 스레드와 병렬로 작동하는 두 개의 개별 스레드를 시작합니다. 해당 코드를 보지 않고 정적 배열 처리의 정확성을 확인할 수는 없지만 이것이 실제로 병렬화되었는지 확인할 수 있습니다.