1

文档说从一个线程锁定并从另一个 rwlock 解锁会导致未定义的行为。我有一个数组和两个线程,一个分配它,一个释放它,这发生在一个循环中,并且还有一些线程在其中读/写,但它们从不重叠,因此那里不需要同步。问题是读/写线程仍然尝试在 dealloc - alloc 之间的时间范围内使用数组。我正在考虑为读/写线程使用读锁并锁定数组以在 dealloc 线程中写入并在分配线程中解锁写入。但这会导致未定义的行为,因为它们发生在不同的线程上。在这种情况下,正确的方法是什么?

4

1 回答 1

3

您需要一些存储状态的变量。您可以使用锁保护该变量。所以当一个线程需要检查或改变状态时,它会获取锁,检查或改变状态,然后释放锁。

于 2014-12-18T08:25:24.857 回答