-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
스레드 관련 질문입니다.
22.02.08 11:42 작성 조회수 107
0
자바 문법 관련 질문입니다.
1.
서버 클래스에는 inner Class로 스레드를 상속한 ServerReceiver 클래스가 만들어 집니다. 이 클래스를
ServerReceiver thread = new ServerReceiver(socket);을 하고 thread.start(); 해서 실행시킵니다.
채팅 클래스에서는 inner Class에 static이 붙습니다. 이 차이가 무엇인지?
2.
채팅클래스 관련.
주고 받고 하는 두 개의 스레드를 start()(==run()) 메서드를 실행시킬 때
Thread sender = new Thread(new ClientSender(socket,name));
Thread receiver = new Thread(new ClientReceiver(socket));
sender.start();
receiver.start();
이전에 서버 클래스에서는 ServerReceiver thread = new ServerReceiver(socket); 이런식으로 호출을 해서 사용했습니다.
Thread를 상속했기에 Thread로 받을 수 있다는 점은 이해했으나
ClientSender sender=new ClientSender(socket,name);
ClientSender receiver =new ClientSender(socket);
이렇게 해도 되는 부분이 아닌지? 궁금합니다~
3.
클라이언트에서는 메인 클래스에서 실행되는 반면에 서버 클래스는 메인에서 자기 자신의 클래스를 호출하여 메서드를 실행시킵니다.
public static void main(String[] args) {
new Project06F_MultiChatServer().start();
}
이 start()메서드 안에서 이전에 질문했었던 (static이 붙지 않은)Inner class를 호출합니다.
이 부분도 메인 메서드에서 굳이 자기 자신을 new로 호출해서 메서드를 실행시키는 이유가 궁금합니다.
4.
그리고
Project06F_MultiChatServer 변수 = new Project06F_MultiChatServer();
변수.start(); 이렇게 하지 않아도 되는 이유도 궁금합니다.
사실 1번과 2번 질문이 이어지는 질문인거 같기는 하지만 일단 모르는 부분이기에 질문드립니다.
답변을 작성해보세요.
답변 0