게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금][JAVA] 스레드가 중지되면 생성자도 같이 소멸되나요?
게시물ID : programmer_21473짧은주소 복사하기
작성자 : 전벙글이예요
추천 : 0
조회수 : 542회
댓글수 : 2개
등록시간 : 2017/10/06 15:15:54
옵션
  • 본인삭제금지
안녕하세요.

자바 스레드 관련해서 질문드릴게 있습니다.

먼저 현재 상황은 아래와 같습니다.
==========================================================
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 스트림이 있습니다.

여기서 오류가 난 것 같아 질문드려봅니다.


꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호