Active Object pattern trong C
1. Khái niệm
Active Object là một mẫu thiết kế nhằm
- Tách lời gọi phương thức ra khỏi thực thi phương thức.
- Thực thi phương thức được xử lí không đồng bộ thông qua event/message queue.
- Giúp tránh race condition và đơn giản hóa concurrency
👉 Active Object giống như là 'thread" nhỏ độc lập có queue riêng và scheduler riêng để xử lí event.
2. Cấu trúc cơ bản
Queue (Mailbox / event queue)
- Nơi nhận các message/event gửi đến
- Chỉ có chính AO đọc queue này.
Scheduler loop
- Vòng lặp sử lí các event có trong queue
- Đảm bảo mỗi lần chỉ xử lí một event -> tránh race conditon.
Dispatch method
- Nhận event và gọi tới handler xử lí tương ứng
Proxy
- Thay vì gọi trực tiếp AO, client gọi Proxy -> proxy đóng gói request thành event rồi gửi vào queue AO.
All rights reserved