- 멀티 스레드
- 스레드 : 프로그램의 실행 흐름
- 멀티스레드 : 병렬작업을 하고싶을때
- 프로세스 스레드
- 스레드: 프로그램 안에서 실행 흐름
- 프로세스 : 프로그램 실행단위
- 스레드를 구현해야하는 이유
- 기능 상 : CPU가 많으면 성능이 좋음
- 로직 상 : 실행되는 동시에 실행되어야하는 것듯 예) 카톡, 게임 등
- 스레드의 구조
- 제어권 →cpu
- new → thread 생성Runable(실행가능한 상태) → run 호출 가능 상태 →run은 cpu가 실행
- start → 기동→ Runable, notRunable 실행가능한 상태까지만 우리가 실행은 cpu가 →start는 우리가 실행
- notRunable(대기 상태): sleep, wait, join
- join
- thread.join() thread가 종료될때까지 대기한다 다른 스레드는 동작하지 않고 join한 스레드만 동작
- wait() 과 sleep()
- sleep() : 주어진 시간동안 일시적으로 정지 모니터락 유지
- wait() : 다른 스레드에 의해 깨워질 때까지 대기하며 모니터락 해제
- Critical section 스레드 실행중 제어가 다른 스레드로 제어권이 넘어가면 생길수 있는 부분
- → 동기화(synchronization)
- 스레드간 신호 전송
- wait() 신호를 받는 메소드 (얼음)
- notify() 신호를 보내는 메소드 (땡)
- 통신 네트워크
- TCP/IP : 연결지향방식 예)전화기, 신뢰적인 데이터를 주고 받는다
- 상대방의 주소 : IP주소
- port : 네트워크를 통해 데이터를 주고 받을 때 사용되는 가상의 출구
- 서버 클라이언트
- 클라이언트 : 서비스를 요청
- 서버 : 서비스를 처리
- 소켓 : 프로그램 내에서 보았을 때의 데이터 통신 출입구
- 서버 소켓 : 연결요청 기다림, 소켓(방금전에 접속한 클라이언트 소켓) 생성→ 객체는 같은것이므로 서버에 있는 소켓 = 클라이언트 소켓
- 클라이언트 소켓 : 서버에게 요청
반응형