有時候會希望一個 block 東西都執行完,在執行下一個,如果是 db 的話可以用 樂觀鎖 與 悲觀鎖 Optimistic Locking & Pessimistic Locking,避免搶資源問題
但如果是像要發兩個 request 就可以使用 Mutex
,但要小心不要 deadlock (同時使用兩個,A 等待 B, B 等待 A),可以搭配 ConditionVariable
,讓它等待另一個 signal 之後再繼續執行
Mutex implements a simple semaphore that can be used to coordinate access to shared data from multiple concurrent threads.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|