안녕하세요.
자바 스레드 관련해서 질문드릴게 있습니다.
먼저 현재 상황은 아래와 같습니다.
==========================================================
A 클래스에 두개의 생성자가 있습니다.
편의상 a1, a2 라고 부르겠습니다.
a1 생성자는 B클래스에서 호출합니다.
a2 생성자는 C클래스에서 호출합니다.
먼저 B클래스에서 a1 생성자를 호출합니다.
아직 a2 생성자는 호출되지 않았습니다.
그리고 다음과 같이 B클래스에서 스레드를 실행합니다.
Runnable run1 = new A(a1);
Thread piRun1 = new Thread(run);
piRun1.start();
그리고 특정 조건이 되면 중지시킵니다
piRun.interrupt();
B클래스의 스레드가 중지가 되면
C클래스에서 a2 생성자가 생성됩니다.
그리고 마찬가지로 C클래스에서 스레드를 실행합니다
Runnable run2 = new A(a2);
Thread piRun2 = new Thread(run);
piRun2.start();
이 경우에 B클래스에서 호출한 생성자 a1은 그대로 남아있는 것인가요?
아니면 스레드와 함께 자동으로 사라지는 것인가요?
아니면 따로 소멸자를 호출해서 없애줘야 하는 것인가요?
지금 코딩하는게 두개의 생성자가 동시에 존재하지 않게끔 만들어줘야하는 상황입니다.
현재 DataOutputStream NullPointerException 오류가 나오고 있는데
a1 생성자엔 output이 없고
a2 생성자엔 output 스트림이 있습니다.
여기서 오류가 난 것 같아 질문드려봅니다.