簡體   English   中英

pthread rwlock從不同的線程鎖定/解鎖

[英]pthread rwlock lock/unlock from different threads

文檔說從一個線程鎖定並從另一個rwlock解鎖會導致未定義的行為。 我有一個數組和兩個線程,一個分配它,一個解除分配它,這發生在一個循環中,並且還有一些線程讀/寫,但它們從不重疊,因此不需要同步。 問題是讀/寫線程仍然嘗試在dealloc-alloc之間的時間范圍內使用該數組。 我正在考慮為讀/寫線程使用讀鎖定並鎖定數組以在dealloc線程中寫入並解鎖在alloc線程中寫入。 但是這會導致未定義的行為,因為它們發生在不同的線程上。 在這種情況下,什么是正確的方法?

您需要一些存儲狀態的變量。 您可以使用鎖保護該變量。 因此,當線程需要檢查或更改狀態時,它會獲取鎖,檢查或更改狀態,然后釋放鎖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM