[Java Multi-Threading] 생산자 소비자 Queue 예제 연습해보기
·
Java
멀티 스레드 개발에 익숙해지는데 실전적인 상황에 대한 연습은 해보면 해볼 수록 도움이 된다. 실제로 메인 스레드에서 분리해서 비동기 작업을 하는 경우에 멀티 스레드를 활용해서 작업을 실행하는 경우는 많이 사용된다. 실제 개발 과제로 만날 법한 상황에 대한 시나리오를 한 번 마련해보고 이를 예제로 풀어보자. 문제 시작 멀티 스레드로 로그를 처리하는 시스템을 만든다고 하자. 여러 서비스로부터 로그를 앱이 수신하고, 모으다가 디스크에 일괄 저장하는 앱이다. 다음과 같은 요구사항들을 가져가보자. 여러 서비스들이 스레드로 로그 메세지를 생성해서 전달한다로그 메세지는 메세지 큐에 쌓이다가, 디스크에 저장을 처리하는 또다른 Writer 스레드로 인해 처리된다Writer 스레드는 큐에서 하나씩 꺼낸다, 이 때,..