TCP 네트워킹

2022. 5. 7. 15:57java/java

*스레드 병렬 처리

 1) 블로킹(대기 상태)가 되는 메소드

  - ServerSocket의 accept()

  - Socket 생성자 또는 connect()

  - Socket의 read(), write()

 

 2) 병렬 처리의 필요성

  - 스레드가 블로킹되면 다른 작업을 수행하지 못한다.

    -1) 입출력 할 동안 다른 클라이언트의 연결 요청을 수락하지 못한다.

    -2) 입출력 할 동안 다른 클라이언트의 입출력을 하지 못한다.

  - UI 생성/변경 스레드에서 블로킹 메소드를 호출하지 않도록 한다.

    -1) UI 생성 및 변경이 안되고 이벤트 처리가 안된다.

 

 3) 스레드 병렬처리

 

 4) 스레드풀을 사용해서 스레드 수 관리

 - 스레드풀은 스레드 수를 제한해서 사용하기 때문에 갑작스런 클라이언트의 폭증은

 - 작업큐의 작업량만 증가시킬 뿐 수는 변함이 없으므로 서버 성능은 완만히 저하된다.

 - 다만 대기하는 작업량이 많기 때문에 개별 클라이언트에서 응답을 늦게 받을 수 있다.

'java > java' 카테고리의 다른 글

UDP 네트워킹  (0) 2022.06.04
스레드 풀(1)  (0) 2022.05.07
TCP 네트워킹  (0) 2022.05.07
보조 스트림(2)  (0) 2022.05.01
보조 스트림  (0) 2022.05.01