系統公告
熱情贊助
yam揪便宜
文章分類
google廣告
Google
yam今日我最殺
人氣指數
當日人次:
累積人次:
javascript小練習
現在時間
好時光貼曆
個人檔案
個人圖檔
ID:swwuyam
暱稱:
地區:臺北縣

搜尋本網誌
搜尋:
誰推薦我
誰來我家
RSS 訂閱
RSS2
ATOM
其它資訊
本部落所刊登之內容,皆由作者個人所提供,不代表 yam天空部落 本身立場。
POWERED BY
POWERED BY
會員登入免費註冊
November 18, 2007

volatile 為一關鍵字 加在變數的前面
被 volatile 宣告的變數 將不會使用最佳化編譯
有時一個變數的值改變了 compiler 並不會馬上將他寫入記憶體中
而會先把結果放在CPU暫存器中 等到處理結束之後 才寫入記憶體
若說這個變數是多執行緒的flag 其他的執行緒要透過這個變數來反應
而這個值卻又沒有寫入記憶體 這時便會發生意想不到的結果
又或者是這變數為一個硬體的暫存器 會被硬體所改變
然而compiler 並沒有正確的將值從硬體暫存器取出來 
而是將自己暫存的值拿來使用
這種情況 就是要用volatile 來宣告變數 告訴compiler不要自己暫存變數來提升速度
如此這個變數有任何的改變 便會馬上反應出來

誰推薦這篇文章
引用 (你可以針對此文寫一篇屬於自己的blog/想法,並給作者一個通告)
引用
留言 (2筆)
2.
Thanks for your explanation
 
james 於 Sep 11, 2008 留言 |
1.
very good explain
 
fatalfeel 於 Jun 26, 2008 留言 |
發表你的留言 (字數限制 最多 2000 個中文字)
私密留言:
Name:




內容:
檢視行動版網頁  |  檢視正常版網頁