Tôi bắt đầu sử dụng D-Bus làm cơ chế IPC cho một dự án mới trong Linux/KDE. Và tôi đã phát hiện ra rằng tài liệu không thực sự giải quyết đồng thời cả. Các dịch vụ D-Bus dự kiến sẽ đối phó với nhiều cuộc gọi đồng thời đến từ các khách hàng khác nhau như thế nào? Mô hình luồng là gì? Có thể một dịch vụ giả định rằng nó là đơn luồng và D-Bus sẽ tự động xếp hàng các yêu cầu?Mô hình luồng D-Bus
Trả lời
Là một giao thức, D-Bus không giải quyết luồng.
Kết nối D-Bus nhận tin nhắn một cách serially. Ở cấp giao thức, trả lời thư là không đồng bộ: tức là người gửi không phải chờ trả lời trước khi gửi thêm thư.
Mặc dù về nguyên tắc, việc triển khai D-Bus có thể gửi tin nhắn đến triển khai dịch vụ đồng thời, tôi không biết bất kỳ điều nào làm điều này.
Thông thường, triển khai D-Bus (hoặc "ràng buộc", nếu bạn muốn) cho phép dịch vụ quyết định cho mỗi phương thức (hoặc thậm chí cho mỗi cuộc gọi phương thức) xem có phản hồi các cuộc gọi đến đồng bộ hay không đồng bộ. Chi tiết về điều này tùy thuộc vào việc triển khai cụ thể mà bạn đang sử dụng.
Nếu bạn đang phản hồi các cuộc gọi phương thức một cách không đồng bộ, việc triển khai dịch vụ của bạn chịu trách nhiệm đảm bảo rằng mọi trạng thái được giữ nhất quán trong khi nhiều câu trả lời đang chờ xử lý. Nếu bạn luôn trả lời đồng bộ, thì bạn biết bạn chỉ đang đối phó với một cuộc gọi phương thức tại một thời điểm.
- 1. Java Servlets luồng mô hình
- 2. Mô hình diễn viên để thay thế mô hình luồng?
- 3. Haskell so với mô hình luồng Python
- 4. Chính sách DBus SystemBus
- 5. Tại sao Flex sử dụng một mô hình đơn luồng?
- 6. Dbus/GLib Vòng lặp chính, Chủ đề nền
- 7. Lỗi nhập phân luồng mô-đun Python
- 8. Tải hình ảnh từ luồng mà không giữ luồng mở
- 9. python luồng: mô hình bộ nhớ và khả năng hiển thị
- 10. Mô hình phân luồng và chia tỷ lệ cho máy chủ TCP với epoll
- 11. Nhận Java Binding cho Dbus chạy trên Android
- 12. Đang chờ dịch vụ DBus khả dụng trong Qt
- 13. Gọi phương thức DBus trong Gjs/Gnome Shell
- 14. Mô hình đường ray thuộc về một mô hình hoặc một mô hình khác hoặc
- 15. Tiết lộ mô hình mô hình khó khăn
- 16. Chuyển tham số mô hình vào mô hình mongoose
- 17. DAO mô hình và các đối tượng mô hình
- 18. Mô hình liên kết và xem mô hình Silverlight MVVM
- 19. Mongoose mô hình thử nghiệm đòi hỏi mô hình
- 20. Lấy mô hình/tên lớp của mô hình Backbone
- 21. Mô hình chiến lược được mô phỏng
- 22. Constructors trong Mô hình Mô-đun
- 23. Mô hình đồng thời Meteor là gì?
- 24. gọi Chức năng in -> luồng vĩ mô
- 25. Mô-đun QSql và ứng dụng đa luồng
- 26. Mô hình MVVM
- 27. Mô hình Markov ẩn
- 28. Giấy phép Mô hình
- 29. Mô hình trong Backbone.js
- 30. Granularization của mô hình?
Cảm ơn. Điều này phù hợp với những gì tôi thấy trong Kubuntu bằng cách sử dụng ràng buộc Qt. Nếu tôi đặt điểm ngắt trong phương thức dịch vụ từ xa của mình (khe) và sau đó gọi nó từ hai máy khách, ứng dụng khách thứ hai đã bị chặn hoàn toàn cho đến khi mã của tôi xử lý xong thông báo đầu tiên. Nhưng tôi không chắc liệu tôi có thể dựa vào điều này không. –