我自己看過volatile會用在這幾個地方,可以參考一下
1. 大多數的Device都會在kernel space map一塊記憶體作為溝通之用
這塊100%是volatile,不然穩死
簡單說這塊記憶體內容根本不是自己控制的,所以每次查詢都需要去peek
2. 這情況雖然我不覺得需要volatile,但是很多人認為是需要的
就是threading的global部分(這是個多危險的東西啊 XD)
我總覺得這用法是從java來的,java會用volatile做某種程度的synchronized
我不知道C有沒有這種行為
3. shmat拿到的void*取值後最好要volatile,別鐵齒,雖然看起來是user space