Following on from a discussion which got going in the comments of this question.
How would one go about writing a Spinlock without CAS operations?
As the other question states:
The memory ordering model is such that writes will be atomic (if two concurrent threads write a memory location at the same time, the result will be on开发者_如何学编程e or the other). The platform will not support atomic compare-and-set operations.
Wikipedia's article on spinlock says you'll have to use an algorithm like Peterson's algortihm, which uses another flag to indicate which process's turn it is to enter the critical section (if desired).
精彩评论