본문 바로가기

thread

(2)
[Thread] 동시성 프로그래밍 - 동기화 락과 동기화에 대한 내용이다. 멀티스레드는 하나의 자원을 여러 스레드가 공유해서 사용한다. 보통은 싱글 스레드 보다 멀티스레드를 필요로 하거나 하나의 자원을 공유해야만 하는 프로그램을 작성할때도 있다. 값이 변하지 않는 공유자원일 특별히 동기화 처리를 할 필요는 없지만 외부에 인해 혹은 설계적으로 자원의 값이 변해야만 하는 상황이 발생한다면 반드시 동기화 처리를 해주어야 한다. 프로그램이 공유자원을 참조하고 반영하는 절차가 굉장히 빠르고 거의 즉시라고 볼 수 있다면 이런 문제는 흔하게 발생하지 않으나, 보통 어느 실생활을 보아도 그렇지 않다. 우리가 은행 업무를 보는 절차도 ATM기에서 카드를 넣는것 부터 시작해서 돈을 인출하는 것 까지는 적게는 30초 많게는 1분 덜 소요된다. 돈을 인출한다라는 행위에..
[Thread] 동시성 프로그래밍 동시성 프로그래밍에 대한 교육을 진행중이다. 모처럼 감기 때문에 몸이 많이 안좋지만 교육이 재밌다보니 맨정신이 아님에도 불구하고 교육장을 찾게 된다. 동시성 프로그래밍 JAVA에서는 thread를 얘기한다. thread는 단어의 정의를 찾아보면 실이라고 나오는데 그 실이라고 함은 프로그램을 돌려보면 왜 thread로 명명했는지 예상이 가능하다. 스레드는,동작하고 있는 프로그램을 프로세스(Process)라고 한다. 보통 한 개의 프로세스는 한 가지의 일을 하지만, 이 쓰레드를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있게 된다. thread는 프로세스와는 다르다. 흔히 프로세스는 하나의 주소를 할당받아 특정 프로그램이 그 프로세스를 사용하게 되지만 thread는 하나의 프로..