[ 면접 ] Thread-safe 하다는 의미를 설명해주세요.

신범철·2022년 10월 6일
0

면접스터디

목록 보기
5/5

Q : Thread-safe 하다는 의미를 설명해주세요.

A : 멀티 스레드 프로그래밍 환경에서 하나의 함수가 한 스레드로부터 호출되어 실행 중일때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드의 결과가 올바르다는 것을 의미합니다.

Q : 사용하시는 언어에서 Thread-safe하게 하는 설계 또는 사용 경험을 말씀해주세요.

A : 자바에는 synchronized라는 키워드가 스레드의 안정성을 보장해줍니다. 또한 싱글톤 패턴을 사용하는 방법이 있습니다.

Q : Mutex와 Semaphore

A : 뮤텍스는 공유자원을 한 번에 한 개의 스레드만 접근 가능하게 하여 스레드의 안정성을 보장하고 세마포어는 여러개의 공유자원을 여러개의 프로세스가 접근 가능하게 관리하는 방법입니다.

Q : HashMap은 Thread-safe한가요. 답변에 대한 이유도 설명해주세요.

A : Java에서 HashMap는 Thread Safe하지 않습니다. 그래서 멀티스레트 환경에서 Map를 사용할 경우 ConcurrentHashMap을 사용합니다.

profile
https://github.com/beombu

0개의 댓글