본문 바로가기

싱글쓰레드

(2)
자바 쓰레드의 I/O 블락킹(blocking) 자바 쓰레드의 I/O 블락킹(blocking)에 대해서 알아보자. 자바 쓰레드의 I/O 블락킹(blocking) 두 쓰레드가 서로 다른 자원을 사용하는 작업의 경우에는 싱글쓰레드 프로세스보다 멀티쓰레드 프로세스가 더 효율적이다. 예를 들면 사용자로부터 데이터를 입력받는 작업, 네트워크로 파일을 주고받는 작업, 프린터로 파일을 출력하는 작업과 같이 외부기기와 입출력을 필요로 하는 경우가 이에 해당한다. 만일 사용자로부터 입력받는 작업(A)과 화면에 출력하는 작업(B)을 하나의 쓰레드로 처리한다고 하면 사용자가 입력을 마칠 때까지 아무 일도 하지 못하고 기다리기만 해야한다. 그러나 두개의 쓰레드로 처리한다면 사용자의 입력을 기다리는 동안 다른 쓰레드가 작업을 처리할 수 있기 때문에 보다 효율적인 CPU의 사..
자바 멀티쓰레드 자바 멀티쓰레드에 대해서 알아보자. 멀티쓰레드 프로세스(process)는 실행중인 프로그램이다. 프로그램을 실행하면 OS로 부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다. 그래서 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스(Multi-threaded process)라고 한다. ex) 싱글쓰레드 = 자원+쓰레드 / 멀티쓰레드 = 자원+쓰레드+쓰레드+.... 멀티쓰레드의 장점은 아래와 같다. CPU의 사용률을 향상시킨다. 자원을 보다 효율적으로 사용할 수 ..