싱글쓰레드와 멀티쓰레드
·
자바/프로세스와 쓰레드
1. 싱글 쓰레드와 멀티 쓰레드의 개념 - 두 개의 작업을 하나의 쓰레드(th1)로 작업하는 것을 싱글쓰레드, 두 개의 쓰레드(th1, th2)로 작업하는 것을 멀티쓰레드라고 부른다. ( 위의 그림은 싱글쓰레드와 멀티쓰레드를 보여준다. ) ( t2와 t`2의 끝나는 시간은 같지만 t1은 t`1보다 더 빨리 끝난다. 왜냐하면 그림에서 보여주듯이 멀티에서는 쓰레드의 '작업전환(context switching)'을 하기 때문이다. ) ( 작업전환으로 인해 보통 PC(Program Counter) 등의 정보를 얻어야 하기 때문에 시간이 걸린다. ) ( 그래서 무조건 멀티쓰레드가 좋은 것이 아니기 때문에, 단순히 CPU만을 사용하는 계산 작업이면 싱글쓰레드가 유리하다. ) 1-1. 싱글쓰레드와 멀티쓰레드를 이해하..
쓰레드의 기본적 구현과 실행
·
자바/프로세스와 쓰레드
1. 쓰레드의 구현 방식 - 쓰레드 구현의 방식은 두 가지가 있는데, Thread 클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이 있다. ( 어느 쪽이든 별 차이는 없지만 Thread를 상속받는다면 다른 클래스를 상속 못 받기 때문에, 인터페이스로 구현하는 것이 일반적이다. ) ( 인터페이스 구현은 재사용이 높고 일관성을 유지하기에 객체지향적 방법이라고 말할 수 있다. ) 1-1. 쓰레드 구현을 이해하기 위한 예제(1) : 상속을 받는 것과 인터페이스를 구현하는 방법을 알아보는 예제이다. import java.util.*; public class Exercise001 { public static void main(String[] args) { ThreadEx1 t1 = new Thr..
프로세스와 쓰레드의 전반적인 개념
·
자바/프로세스와 쓰레드
1. 프로세스란? - 간단하게 말하면 '실행 중인 프로그램' 이다. - os로부터 필요한 자원을 할당받으면 프로세스가 된다. - 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스' 라고 부른다. ( 쓰레드는 간단히 말하면 공장(프로세스)에서 일하는 사람(쓰레드)으로 비유해도 좋다. ) ( 프로세스는 메모리에 할당받아 자리를 차지하며, 쓰레드 또한 프로세스처럼 call stack의 공간을 필요하기 때문에 프로세스의 메모리 한계에 따라 쓰레드의 수가 정해진다. 그렇다고, 한계에 다다를 정도로 만들지는 않는다. ) 2. 멀티태스킹과 멀티쓰레딩 - 멀티태스킹은 여러 개의 프로세스를 동시에 실행할 수 있는 것을 말한다. - 멀티쓰레딩은 하나의 프로세스 내에서 여러 쓰레드가 동시에 수행하는 것을 말한다. (..
소수 만들기
·
알고리즘 (with JAVA)/코딩 테스트 기출 문제
1. 문제 설명 2. 입출력 조건 및 예제 입력 조건 문제 설명 참고 출력 조건 문제 설명 참고 입력 예제 2 1 2 3 4 1 2 7 6 4 출력 예제 1 4 3. 제약 조건 문제 설명 참고 4. 가정법 X 5. 기저 사례 X 6. 코드 public class Main { private static BufferedReader sc = new BufferedReader(new InputStreamReader(System.in)); private static StringTokenizer st; private static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws Exception { int c =..