파이썬의 재귀 락, 세마포어, 이벤트, 스레드 큐, 프로세스 및 스레드 풀, 콜백 함수, 타이머
1. 스레드의 데드락과 재귀 락 (RLock)
데드락은 두 개 이상의 스레드가 서로 자원을 기다리며 진행이 멈추는 현상이다. 예를 들어, 스레드 A가 자원 1을 점유하고 자원 2를 요청하고, 동시에 스레드 B가 자원 2를 점유하고 자원 1을 요청하면, 둘 다 대기 상태에 빠져 프로그램이 정지된다.
이 문제를 해결하기 위해 파이썬에서는 RLock(Reentrant Lock)을 제공한다. 이 ...
6월 1일 23:56에 게시됨
낙관적 및 비관적 락 개념과 구현 방식
낙관적 락과 비관적 락 정의
비관적 락(Pessimistic Locking): 데이터가 다른 스레드에 의해 수정될 가능성을 항상 고려하는 방식입니다. 이는 자원을 항상 잠금 상태로 유지하며, 다른 스레드가 해당 자원에 접근할 때까지 차단합니다. Java에서 synchronized와 ReentrantLock은 이러한 비관적 접근 방식을 따릅니다.
낙관적 락(Optimistic Locking): 데이터가 수정되 ...
5월 29일 18:04에 게시됨
SpringBoot 비동기 처리와 세마포어를 활용한 동시성 제어
세마포어(Semaphore)는 다중 스레드 환경에서 공유 자원에 대한 동시 접근을 제어하는 동기화 메커니즘입니다. 허용된 개수만큼의 스레드만 자원에 접근할 수 있도록 관리하며, 초과하는 요청은 대기 상태로 전환됩니다.
실무에서는 외부 API 호출, 데이터베이스 연결, 파일 I/O 등 리소스 집약적인 작업에 동시 접근 제한을 적용하여 시스템 안정성을 확보합니다. 예를 ...
5월 29일 08:32에 게시됨