Hãy xem xét tình huống sau:
- Bạn có một chương trình tạo ra nhiều 'công việc' cần được xử lý và xếp chúng vào hàng đợi.
- Bạn có các chương trình công nhân khác sắp xếp 'công việc' tiếp theo để họ có thể xử lý công việc đó.
- Mỗi công việc có một loại.
- Có thể có bất kỳ số lượng các loại.
- Hai công việc có cùng loại không thể được xử lý cùng một lúc bởi các công nhân riêng biệt.
- Một công nhân có thể xử lý một công việc tại một thời điểm.
Một hàng đợi truyền thống sẽ không hoạt động trong tình huống này bởi vì có khả năng nhiều công việc cùng loại sẽ được xử lý đồng thời, điều này không được phép.
Bạn có thể yêu cầu nhân viên kiểm tra công việc mà họ nắm bắt và xem liệu danh mục công việc đó có một công nhân khác hiện đang xử lý công việc đó không và nếu có thì hãy gửi lại công việc vào hàng đợi để xử lý sau. Đây có vẻ là một cách không hiệu quả để giải quyết vấn đề này. Có bất kỳ cấu trúc dữ liệu hoặc các mẫu thiết kế có thể giải quyết vấn đề này?
Nếu bạn cần làm rõ thêm, xin vui lòng cho tôi biết.