Các tài nguyên chia sẻ từ tăng :: interprocess (bộ nhớ chia sẻ, vv) yêu cầu bạn cung cấp đồng bộ cần thiết. Lý do cho điều này là bạn có thể không yêu cầu đồng bộ hóa, và nó thường là một hiệu suất hoạt động hơi đắt tiền khôn ngoan.
Hãy nói ví dụ rằng bạn đã có một quy trình ghi vào bộ nhớ chia sẻ thống kê hiện tại về điều gì đó ở định dạng số nguyên 32 bit và một vài quy trình đọc các giá trị đó. Vì các giá trị là số nguyên (và do đó trên nền tảng của bạn đọc và viết là nguyên tử) và bạn có một quá trình viết chúng và một vài quá trình đọc chúng, không cần đồng bộ hóa cho thiết kế này.
Tuy nhiên trong một số ví dụ, bạn sẽ yêu cầu đồng bộ hóa, như thể ví dụ trên có nhiều người viết hoặc nếu thay vì số nguyên bạn đang sử dụng dữ liệu chuỗi. Có cơ chế đồng bộ hóa khác nhau bên trong tăng (cũng như những người không tăng, nhưng kể từ khi bạn tăng đã sử dụng), được mô tả ở đây:
[Boost thông tin cho phiên bản ổn định: 1,48] http://www.boost.org/doc/libs/1_48_0/doc/html/interprocess/synchronization_mechanisms.html
[Boost thông tin đối với phiên bản bạn đang sử dụng: 1.40] http://www.boost.org/doc/libs/1_40_0/doc/html/interprocess/synchronization_mechanisms.html
Với bộ nhớ dùng chung, đây là cách phổ biến để đặt cơ chế đồng bộ ở chân bộ nhớ chia sẻ, có nghĩa là hạt nhân OS không cấp quyền truy cập theo tên). Bằng cách này, tất cả các quy trình đều biết cách khóa phân đoạn bộ nhớ chia sẻ và bạn có thể kết hợp khóa với phân đoạn của chúng (ví dụ: nếu bạn có nhiều phân đoạn)
Hãy nhớ rằng một mutex yêu cầu cùng một luồng thực thi (bên trong một quy trình) mở khóa nó đã khóa nó. Nếu bạn yêu cầu khóa và mở khóa một đối tượng đồng bộ hóa từ các luồng thực thi khác nhau, bạn cần một semaphore.
Hãy chắc chắn rằng nếu bạn chọn sử dụng mutex là mutex interprocess (http://www.boost.org/doc/libs/1_48_0/doc/html/boost/interprocess/interprocess_mutex.html) như trái ngược với mutex trong thư viện chủ đề tăng cường cho một quá trình đơn lẻ với nhiều luồng.
Bạn đã đọc http://www.boost.org/doc/libs/1_40_0/doc/html/interprocess/synchronization_mechanisms.html chưa? –