Java 동기화 문제 8가지

문제 1: 다음 코드에서 전화를 걸기 전에 메시지를 먼저 보낼까요? 메시지 전송 public class A { public static void main(String[] args) throws InterruptedException { Phone phone = new Phone(); // 락 적용 new Thread(()->{ try { phone.sendMessage(); } catch (InterruptedException e ...

8월 9일 21:25에 게시됨

C++ 동시성 프로그래밍에서 뮤텍스와 조건 변수의 성능 비교

소개 본 글은 가장 간단한 생산자-소비자 모델을 통해 프로그램 실행 시 CPU 사용률을 관찰하여 뮤텍스와 뮤텍스+조건 변수의 성능을 비교합니다. 이 예제에서는 1개의 생산자와 5개의 소비자로 구성된 생산자-소비자 모델을 사용합니다. 생산자 스레드가 큐에 데이터를 넣고, 5개의 소비자 스레드가 큐에서 데이터를 가져옵니다. 데이터를 가져오기 전에 큐에 데이터가 있 ...

7월 15일 00:42에 게시됨

재진입 가능한 세마포어 이해하기

목차 상호 배제성 재진입 가능성 synchronized 키워드를 통한 자동 락 관리 디락 예방 전략 요약 동기화 메커니즘은 여러 스레드가 공유 리소스에 접근할 때 동작을 제어하는 데 사용됩니다. 병렬 처리에서 임계 구간은 특정 리소스에 대한 접근을 제한하는 코드 블록으로, 동시에 하나의 스레드만 실행할 수 있습니다. 락 과정: 리소스 접근 전에 락을 획득해야 하며, ...

7월 8일 07:43에 게시됨