Tôi đã chơi với hàng đợi tin nhắn (Hệ thống V, nhưng POSIX cũng phải ổn) trong Linux gần đây và chúng có vẻ hoàn hảo cho ứng dụng của tôi, nhưng sau khi đọc Nghệ thuật Lập trình Unix Tôi không chắc liệu chúng có thực sự là sự lựa chọn tốt.Hàng đợi thông báo có lỗi thời trong linux không?
http://www.faqs.org/docs/artu/ch07s02.html#id2922148
Các thượng, lớp thông điệp qua của System V IPC phần lớn đã rơi ra sử dụng. Tầng dưới, bao gồm bộ nhớ chia sẻ và các semaphores, vẫn có các ứng dụng quan trọng trong các trường hợp trong đó người ta cần phải thực hiện khóa loại trừ lẫn nhau và chia sẻ dữ liệu toàn cầu giữa các tiến trình đang chạy trên cùng một máy. Các cơ sở bộ nhớ chia sẻ System V này đã phát triển thành API bộ nhớ chia sẻ POSIX, được hỗ trợ trong Linux, BSD, MacOS X và Windows, nhưng không phải là hệ điều hành MacOS cổ điển.
http://www.faqs.org/docs/artu/ch07s03.html#id2923376
Các cơ sở System V IPC có mặt trong Linux và Unixes hiện đại khác. Tuy nhiên, vì chúng là một tính năng cũ, chúng không được thực hiện thường xuyên. Phiên bản Linux vẫn được biết là có lỗi vào giữa năm 2003. Không ai có vẻ quan tâm đủ để sửa chúng.
Hàng đợi thông báo V hệ thống vẫn còn lỗi trong các phiên bản Linux mới hơn không? Tôi không chắc liệu tác giả có nghĩa là hàng đợi thông điệp POSIX phải không?
Dường như các ổ cắm là IPC được ưa thích cho hầu như mọi thứ (?), Nhưng tôi không thể thấy nó sẽ rất đơn giản để thực hiện hàng đợi tin nhắn bằng ổ cắm hoặc cái gì khác. Hay tôi nghĩ quá phức tạp?
Tôi không biết liệu có liên quan đến việc tôi đang làm việc với Linux nhúng không?
7 năm sau .. hy vọng nó không quá nhiều để được vẫn còn phần nào có liên quan: Tôi tự hỏi về các thiết lập mặc định của hàng đợi tin nhắn trên 'Ubuntu 14.04',' linux 3.13', cụ thể là 'cat/proc/sys/fs/mqueue/msg_max' danh sách 10 (thư trong một hàng đợi) và'/proc/sys/fs/mqueue/msgsize_max' là 8192 (byte) - chúng nhỏ kỳ lạ. Có một số lý do nghiêm ngặt cho các mặc định này hoặc chúng chỉ là cũ? ('Man mq_overview' nói giới hạn cứng trên msg_max là khoảng 32768, là khá cao.) Tôi không có ý định tạo một hàng đợi giống như dòng vô hạn, nhưng là 100-1000 trong' msg_max' ok? – xealits