스레드
-
[Java] 멀티 스레드 - 상태 & 상태 제어CSE/Java 2015. 12. 12. 16:11
멀티 스레드는 여러 절로 구성되어 있습니다. Intro작업스레드스레드 우선순위 & 동기화 메소드와 동기화 블록스레드 상태 & 상태 제어스레드 상태 제어 2데몬 스레드 & 스레드 그룹스레드 풀 스레드 상태 스레드 객체를 생성하고, start() 메소드를 호출하면 곧바로 스레드가 실행되는 것처럼 보이지만 사실은 대기 상태가 됩니다. 실행 대기 상태란 아직 스케줄링 되지 않아서 실행을 기다리고 있는 상태를 말합니다. 실행 대기 상태에 있는 스레드 중에서 스케줄링으로 선택된 스레드가 CPU를 점유하고 run() 메소드를 실행하는데, 이를 실행(Running) 상태라고 합니다. 실행 상태의 스레드는 run() 메소드를 모두 실행하기 전에 스케줄링에 의해 다시 실행 대기 상태로 돌아갈 수 있습니다. 실행 상태에서 ..
-
[Java] 멀티 스레드 - 우선순위, 동기화 메소드CSE/Java 2015. 12. 12. 14:26
멀티 스레드는 여러 절로 구성되어 있습니다. Intro작업스레드스레드 우선순위 & 동기화 메소드와 동기화 블록스레드 상태 & 상태 제어스레드 상태 제어 2데몬 스레드 & 스레드 그룹스레드 풀 스레드 우선순위 멀티 스레드는 동시성(Concurrency) 또는 병렬성(Parallelism)으로 실행되기 때문에 이 용어들에 대해 정확히 이해하는 것이 좋습니다. 동시성은 멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아가며 실행하는 성질을 말합니다. 병렬성은 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질을 말합니다. 스레드의 개수가 코어의 수보다 많을 경우, 스레드를 어떤 순서에 의해 동시성으로 실행할 것인가를 결정해야 하는데, 이것을 스레드 스케줄링이라고 합니다. 스케줄링에 의해 스..
-
[Java] 멀티 스레드CSE/Java 2015. 12. 12. 12:07
멀티 스레드는 여러 절로 구성되어 있습니다. Intro작업스레드스레드 우선순위 & 동기화 메소드와 동기화 블록스레드 상태 & 상태 제어스레드 상태 제어 2데몬 스레드 & 스레드 그룹스레드 풀 멀티 스레드 개념 운영체제에서 실행 중인 하나의 어플리케이션을 프로세스(process)라고 부릅니다. 실행에 필요한 메모리를 할당받아 어플리케이션의 코드를 실행하게 됩니다. 다음은 멀티 프로세스와 그에 따른 싱글/멀티 스레드를 그림으로 보겠습니다. 멀티 프로세스는 운영체제에서 할당받은 자신의 메모리를 가지고 실행하기 때문에 서로 독립적입니다. 따라서 하나의 프로세스에서 오류가 발생해도 다른 프로세스에게 영향을 끼치지 않습니다. 하지만 멀티 스레드는 하나의 프로세스 내부에서 생성되기 때문에 하나의 스레드가 예외를 발생..
-
[Linux] 2. 프로세스와 스레드(Process & Thread)CSE/Linux 2015. 8. 11. 19:46
프로세스(Process)란 일반적으로 현재 실행 중인 프로그램을 말하며 태스크(task)라는 일반적인 용어로도 사용됩니다. 실행 중인 프로그램의 의미를 가지는 프로세스는 실행되는 동안 커널이 가진 자원(CPU, Memory, Devices, Files)을 독자적으로 차지해야 할 경우가 많습니다. 따라서 프로세스는 항상 커널의 자원을 차지하기 위해 경쟁하고 커널은 이들에게 효율적으로 자원을 스케줄링하여 할당하고 회수하는 역할을 합니다. 프로세스는 커널이 가진 여러가지 자원의 할당 및 사용을 위해 커널 함수를 호출해야 하는데, 이러한 커널 함수들을 일반적으로 시스템 호출(System call)이라 합니다. 따라서 동작 중인 컴퓨터 시스템은 커널과 프로세스 간의 관계에 의해 모든 것이 결정되는 것이라 볼 수 ..