คำถามติดแท็ก boost-thread

10
C ++ 0x ไม่มี semaphores? จะซิงโครไนซ์เธรดได้อย่างไร?
C ++ 0x จะมาโดยไม่มี semaphores จริงหรือ? มีคำถามบางอย่างเกี่ยวกับ Stack Overflow เกี่ยวกับการใช้ semaphores อยู่แล้ว ฉันใช้มัน (posix semaphores) ตลอดเวลาเพื่อให้เธรดรอเหตุการณ์บางอย่างในเธรดอื่น: void thread0(...) { doSomething0(); event1.wait(); ... } void thread1(...) { doSomething1(); event1.post(); ... } ถ้าฉันจะทำแบบนั้นกับ mutex: void thread0(...) { doSomething0(); event1.lock(); event1.unlock(); ... } void thread1(...) { event1.lock(); doSomethingth1(); event1.unlock(); ... } ปัญหา: มันน่าเกลียดและไม่รับประกันว่า …

6
ตัวอย่างสำหรับ boost shared_mutex (การอ่านหลายครั้ง / การเขียนหนึ่งครั้ง)?
ฉันมีแอปมัลติเธรดที่ต้องอ่านข้อมูลบ่อยครั้งและมีการอัปเดตข้อมูลเป็นครั้งคราว ตอนนี้ mutex ช่วยให้เข้าถึงข้อมูลนั้นได้อย่างปลอดภัย แต่มีราคาแพงเพราะฉันต้องการให้หลายเธรดสามารถอ่านพร้อมกันได้และล็อคเฉพาะเมื่อจำเป็นต้องอัปเดตเท่านั้น (เธรดการอัปเดตอาจรอให้เธรดอื่นเสร็จสิ้น) . ฉันคิดว่านี่คือสิ่งที่boost::shared_mutexควรทำ แต่ฉันไม่ชัดเจนในการใช้งานและยังไม่พบตัวอย่างที่ชัดเจน ใครมีตัวอย่างง่ายๆที่ฉันสามารถใช้เริ่มต้นได้บ้าง?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.