-
[ 운영체제 ] synchronized (JAVA)공부 !/Computer Science 2022. 6. 16. 16:08반응형
synchronized
스레드가 하나의 자원을 사용하고자 할때 해당 스레드만 제외하고 나머지 스레드가 자원에 접근 못하도록 막는 것을 동기화라고 한다 자바에서는 Synchronized 키워드를 통해 객체에 대한 동기화가 이루어지며 동기화된 블록에는 한 시점에는 하나의 스레드만이 접근 및 실행되도록 조정한다
synchronized 키워드를 통해 임계영역을 설정하여 한 번에 하나의 스레드만 접근하도록 하는것이라고 이해하면 된다 !
자바 프로그램은 기본적으로 메인 스레드가 main() 메소드를 실행 시키며 시작된다 마지막 코드를 실행하거나 return 을 만나면 종료되는데 JVM 이 생성한 메인 스레드는 별도의 작업 스레드를 만들어 이를 병렬로 실행 시킬 수 있다 멀티스레드를 생성한다는 의미로 멀티스레딩에서는 실행중인 스레드가 하나라도 존재하면 프로세스가 종료되지않는다
하지만 여러 스레드가 객체를 공유하는 경우에 동기화가 제대로 이루어지지 않으면 상태가 예측한 것과 달라진다
따라서 임계 영역을 지정하기 위해 synchronized 키워드를 사용하는 것이다
참고 https://github.com/junu0516/mytil/blob/main/Java/synchronized.md
반응형'공부 ! > Computer Science' 카테고리의 다른 글
[ 운영체제 ] 페이징과 세그멘테이션 (Paging & Segmentation) (0) 2022.06.24 [ 운영체제 ] 캐시의 지역성 (0) 2022.06.16 [ 운영체제 ] 동기화 객체의 종류와 특징 Synchronization Object (0) 2022.06.16 [ 운영체제 ] 동기와 비동기 Synchronous and Asynchronous (0) 2022.06.15 [ 소프트웨어 공학 ] TDD 테스트 주도 개발 (0) 2022.06.03