Java에서의 Thread 요즘 OS는 모두 멀티태스킹을 지원한다. 멀티태스킹이란? 예를 들면, 컴퓨터로 음악을 들으면서 웹서핑도 하는 것 쉽게 말해서 두 가지 이상의 작업을 동시에 하는 것을 말한다. 실제로 동시에 처리될 수 있는 프로세스의 개수는 CPU 코어의 개수와 동일한데, 이보다 많은 개수의 프로세스가 존재하기 때문에 모두 함께 동시에 처리할 수는 없다. 각 코어들은 아주 짧은 시간동안 여러 프로세스를 번갈아가며 처리하는 방식을 통해 동시에 동작하는 것처럼 보이게 할 뿐이다. 이와 마찬가지로, 멀티스레딩이란 하나의 프로세스 안에 여러개의 스레드가 동시에 작업을 수행하는 것을 말한다. 스레드는 하나의 작업단위라고 생각하면 편하다. 스레드 구현 자바에서 스레드 구현 방법은 2가지가 있다. Runna..
Casting(업캐스팅 & 다운캐스팅) 캐스팅이란? 변수가 원하는 정보를 다 갖고 있는 것 int a = 0.1; // (1) 에러 발생 X int b = (int) true; // (2) 에러 발생 O, boolean은 int로 캐스트 불가 (1)은 0.1이 double형이지만, int로 될 정보 또한 가지고 있음 (2)는 true는 int형이 될 정보를 가지고 있지 않음 캐스팅이 필요한 이유는? 다형성 : 오버라이딩된 함수를 분리해서 활용할 수 있다. 상속 : 캐스팅을 통해 범용적인 프로그래밍이 가능하다. 형변환의 종류 묵시적 형변환 : 캐스팅이 자동으로 발생 (업캐스팅) Parent p = new Child(); // (Parent) new Child()할 필요가 없음 Parent를 상속받은 Chi..
[TCP] 3 way handshake & 4 way handshake 연결을 성립하고 해제하는 과정을 말한다 3 way handshake - 연결 성립 TCP는 정확한 전송을 보장해야 한다. 따라서 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 way handshake 과정을 진행한다. 1) 클라이언트가 서버에게 SYN 패킷을 보냄 (sequence : x) 2) 서버가 SYN(x)을 받고, 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보냄 (sequence : y, ACK : x + 1) 3) 클라이언트는 서버의 응답은 ACK(x+1)와 SYN(y) 패킷을 받고, ACK(y+1)를 서버로 보냄 이렇게 3번의 통신이 완료되면 연결이 성립된다. (3번이라 3 way handshake인 것) ..