본문 바로가기

병렬처리

스레드 소개

순차(Sequential) - 복수의 업무를 순차적으로 실행

병렬(parallel) -  복수의 업무를 동시에 처리

병행(concurrnt) - 한 개의 업무를 어떠한 순서로 처리하든 상관 없이 여러개로 분할하는 모습


데이터 레이스(data race) or 레이스 컨디션(race condition) - 쓰레드 A와 쓰레드 B가 경쟁 함으로써 예기치 않게 발생하는 상황

베타제어 or 상호베타(mutual exclusion) -  하나의 쓰레드가 어느 부분을 실행하고 있으면 다른 쓰레드가 그 부분을 실행할 수 없게 만듬


Synchronized 

 - 자바에서 베타제어를 가능하게 해주는 키워드

 

 wait 셋 - 쓰레드 대합실

wait 셋 - 정지하고 있는 쓰레드들의 집합 notify, notifyAll, interrupt, wait메소드 타임아웃


wait - 스레드를 wait set에 들어가게 함. syncronized 블록안에서만 실행 가능함.

notify - wait 셋에 있는 쓰레드 한 개를 꺼냄

notifyAll - wait 셋에 있는 모든 쓰레드를 꺼냄


* 락을 가지지 못한 쓰레드가 wait, notify, notifyAll 메소드를 호출하면 java.lang.IIlegalMOnitorStateException 통보




'병렬처리' 카테고리의 다른 글

  (0) 2017.05.17
스레드 안전성  (0) 2017.04.28