거꾸로 바라본 세상
Published 2016. 5. 25. 13:57
쓰레드 Language/Java
반응형

동시성 : 하나의 코어에서 멀티 스레드를 번갈아가며 수행하는 성질

병렬성 : 멀티 코어에서 개별 스레드를 동시에 실행하는 성질


동기화(Synchronized)

-싱글 스레드 프로그램에서는 한 개의 스레드 객체를 독차지해서 사용하면 되지만, 멀티 스레드는 스레드들이 객체를 공유해서 작업해야할 경우가 있다.

이 경우, A를 사용하던 객체가 B에 의해 상태가 변경될 수 있기 때문에 A가 의도했던 것과 다른 결과를 얻을 수 있다.

그래서 스레드가 사용중인 객체를 다른 스레드가 변경할 수 없도록 하려면 스레드 작업이 끝날 때까지 객체에 lock을 걸어서 다른 스레드가 사용할 수 없도록 해야한다. 멀티 스레드 프로그램에서 단 하나의 스레드만 실행하도록 할 수 있는 영역을 임계영역(Critical section)이라고 한다. 이 임계영역을 지정하기 위해 동기화(Synchronized) 메소드와 동기화 블록을 사용한다. 그래서 이 스레드가 객체 내부에 동기화 메소드 또는 블록이 들어가면 즉시 객체에 잠금을 걸어 다른 스레드가 임계 영역 코드를 실행하지 못하도록 한다.

 

반응형

'Language > Java' 카테고리의 다른 글

Java static 키워드  (0) 2016.08.11
java final 키워드  (0) 2016.08.11
[NIO] 파일 채널(FileChannel)  (0) 2016.04.06
달력만들기  (0) 2016.03.25
Java 줄바꿈 처리  (0) 2016.03.07
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!