블로킹 큐(Blocking Queue)는 동기화와 스레드 안전성을 보장하는 자료구조이다. 주로 멀티 스레드 환경에서 사용되며, 생산자-소비자 패턴과 같은 문제를 해결할 때 유용하다.블로킹 큐의 동작 방식블로킹 큐는 큐가 비어 있거나 가득 찼을 때, 큐에 데이터를 넣거나 빼려는 스레드가 일정 조건을 만족할 때까지 대기 상태(블로킹)에 들어간다. 이를 통해 스레드 간의 안전한 데이터 공유가 가능하다.삽입 시 대기큐가 가득 찬 경우, 데이터를 삽입하려는 스레드는 큐에 빈 공간이 생길 때까지 대기한다.다른 스레드가 큐에 데이터를 소비해서 자리가 생기면, 삽입하려는 스레드는 대기 상태에서 깨어나고 데이터를 큐에 넣을 수 있다.삭제 시 대기큐가 비어 있는 경우, 데이터를 꺼내려는 스레드는 큐에 새로운 데이터가 삽입..
1. 커널 영역과 사용자 영역커널 영역에는 프로세스 제어 블록(PCB)이 저장되고, 사용자 영역에는 실행 중인 프로세스를 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장된다.1-1. 코드 영역코드 영역은 CPU가 실행할 명령어가 담겨 있기 때문에 읽기 전용(read-only) 모드로 사용한다. CPU는 코드 영역에 담긴 명령어를 읽고 실행만 하기 때문에, 수정되어서는 안 될 공간이다.1-2. 데이터 영역데이터 영역은 프로그램이 실행되는 동안 사용할 데이터가 저장되는 공간이다. 주로 정적 변수와 전역 변수가 저장된다.전역 변수 : 프로그램 전체에서 사용 가능한 변수이다.자바(Java)는 전역 변수를 지원하지 않는다.정적 변수 : 클래스에 속한 변수로, 클래스의 모든 인스턴스가 공유하는 변수..