원자성을 만족하는 메서드를 n개 호출하는 작업은 atomic 할까요?
안녕하세요. 백준 chogahui05입니다. Vector는 ArrayList와 다르게, 주요 메서드에 synchronized가 붙은 클래스입니다. 여기서 질문 하나 드리겠습니다. 다음 코드는 어떻게 동작할까요? 쓰레드 n개를 생성했다고 해 봅시다. 그러면 이 프로그램은, 항상 비어있는 벡터를 리턴할까요? 혹은, 항상 제대로 동작할까요? vector는 ArrayList와는 다르게 주요 메서드에 동기화 처리가 되어 있습니다. 이는 StringBuilder와 StringBuffer와의 관계와도 같습니다. 전자는 동기화 처리가 되어 있지 않고, 후자는 되어 있다. 정도로 이해하시면 됩니다. 실제로, Worker 클래스의 run 메서드 안에 있는 메서드 3개를 봅시다. isEmpty는 elementCount가 0..
OS/이론
2020. 3. 11. 19:55
최근댓글