0

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí