3장. 이벤트 중심 API

AMQ Clients에서 제공하는 대부분의 API는 비동기식 이벤트 중심 API입니다. 여기에는 C++, JavaScript, Python 및 Ruby API가 포함됩니다.

이러한 API는 네트워크 활동에 대한 응답으로 애플리케이션 이벤트 처리 기능을 실행하여 작동합니다. 라이브러리는 네트워크 I/O를 모니터링하고 이벤트를 실행합니다. 이벤트 처리기는 기본 라이브러리 스레드에서 순차적으로 실행됩니다.

이벤트 처리기는 기본 라이브러리 스레드에서 실행되므로 처리기 코드에는 장기 실행 차단 작업을 포함하지 않아야 합니다.Because the event handlers run on the main library thread, the handler code must not contain any long-running blocking operations. 이벤트 처리기에서 차단하면 모든 라이브러리 실행이 차단됩니다. 긴 차단 작업을 실행해야 하는 경우 별도의 스레드에서 호출해야 합니다. 이벤트 중심 API에는 라이브러리 스레드와 애플리케이션 스레드 간의 조정을 지원하는 크로스 스레드 통신 기능이 포함되어 있습니다.

이벤트 처리기에서 차단 방지

이벤트 처리기에서 장기 실행 차단 호출은 모든 라이브러리 실행을 중지하여 라이브러리가 다른 이벤트를 처리하고 주기적인 작업을 수행하지 못하도록 합니다. 항상 별도의 애플리케이션 스레드에서 장기 실행 차단 절차를 시작합니다.