본문 바로가기

thread2

[Thread] 동기화와 교착상태 Thread Synchronization동기화(synchronization)스레드는 자원을 공유하기 때문에 동시에 여러 스레드가 실행되면 공유 자원에 대해 동기화가 발생할 수 있다.실행 흐름은 순차적으로 진행되지만, 자원은 한정적인데 여러 스레드가 동시 접근해서 사용하려고 하면 문제가 생기게 된다.공유 메모리에 대해서 한 번에 한 스레드만 공유자원에 접근할 수 있도록 만들어 동기화 문제를 해결할 수 있다. 임계영역(critical section)멀티스레드 프로그램에서 공유 자원이 참조 가능한 코드 영역을 말한다. 한 스레드가 사용 중인 자원은 작업이 끝날 때까지 lock을 걸어서 다른 스레드가 사용할 수 없도록 한다.자바에서는 임계영역을 지정하기 위해 동기화 메소드와 동기화 블록을 제공한다. 스레드가 동.. 2018. 6. 11.
[Thread] Thread Thread Process와 Thread 프로세스는 운영체제에서 실행되고 있는 하나의 프로그램을 말한다. 이 프로세스는 반드시 하나 이상의 스레드를 포함하게 되는데, 이 스레드는 프로세스 내에서 실행되는 독립적인 실행 흐름의 단위라고 할 수 있다. 즉, 경량화 된 프로세스라고 보면 된다. 프로세스에서 실질적인 일 처리는 이 스레드가 담당하게 된다. 프로세스는 완전히 독립적인 단위이므로 메모리 영역을 다른 프로세스와 공유하지 않는다. 하지만 스레드는 해당 스레드를 위한 스택메모리를 생성할 뿐 그 외 메모리 영역은 공유한다. 이 때문에 멀티 프로세싱 하던 일을 스레드로 구현하면 메모리 공간과 자원을 절약할 수 있다. 스레드를 활용해서 프로세스를 수행했을 때, 시스템 단위시간 당 데이터 처리량이 향상된다. 따.. 2018. 6. 11.