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에 게시됨