青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
Randy
人之所以痛苦,在于追求錯(cuò)誤的東西
volatile
盡管C和C++標(biāo)準(zhǔn)對(duì)于線程都明顯的“保持沉默”,但它們以volatile關(guān)鍵字的形式,確實(shí)為多線程保留了一點(diǎn)特權(quán)。
就象大家更熟悉的const一樣,volatile是一個(gè)類型修飾符(type modifier)。
它是被設(shè)計(jì)用來(lái)修飾被不同線程訪問(wèn)和修改的變量。
如果沒(méi)有volatile,基本上會(huì)導(dǎo)致這樣的結(jié)果:要么無(wú)法編寫(xiě)多線程程序,要么編譯器失去大量?jī)?yōu)化的機(jī)會(huì)。
class
Gadget
{
public
:
void
Wait()
{
while
(
!
flag_)
{
Sleep(
1000
);
//
sleeps for 1000 milliseconds
}
}
void
Wakeup()
{
flag_
=
true
;
}
private
:
bool
flag_;
}
;
上面代碼中Gadget::Wait的目的是每過(guò)一秒鐘去檢查一下flag_成員變量,當(dāng)flag_被另一個(gè)線程設(shè)為true時(shí),該函數(shù)才會(huì)返回。
然而,這個(gè)Wait函數(shù)是錯(cuò)誤的。
假設(shè)編譯器發(fā)現(xiàn)Sleep(1000)是調(diào)用一個(gè)外部的庫(kù)函數(shù),它不會(huì)改變成員變量flag_,那么編譯器就可以斷定它可以把flag_緩存在寄存器中,以后可以訪問(wèn)該寄存器來(lái)代替訪問(wèn)較慢的主板上的內(nèi)存。
這對(duì)于單線程代碼來(lái)說(shuō)是一個(gè)很好的優(yōu)化,但是在現(xiàn)在這種情況下,
它破壞了程序的正確性:當(dāng)你調(diào)用了某個(gè)Gadget的Wait函數(shù)后,即使另一個(gè)線程調(diào)用了Wakeup,Wait還是會(huì)一直循環(huán)下去。
這是因?yàn)閒lag_的改變沒(méi)有反映到緩存它的寄存器中去。編譯器的優(yōu)化未免有點(diǎn)太……樂(lè)觀了。
在大多數(shù)情況下,把變量緩存在寄存器中是一個(gè)非常有價(jià)值的優(yōu)化方法,如果不用的話很可惜。
C和C++給你提供了顯式禁用這種緩存優(yōu)化的機(jī)會(huì)。如果你聲明變量是使用了volatile修飾符,
編譯器就不會(huì)把這個(gè)變量緩存在寄存器里——每次訪問(wèn)都將去存取變量在內(nèi)存中的實(shí)際位置。
這樣你要對(duì)Gadget的Wait/Wakeup做的修改就是給flag_加上正確的修飾:
class
Gadget
{
public
:
private
:
volatile
bool
flag_;
}
;
posted on 2008-10-13 17:27
Randy
閱讀(199)
評(píng)論(0)
編輯
收藏
引用
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Powered by:
C++博客
Copyright © Randy
<
2008年11月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
導(dǎo)航
C++博客
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
統(tǒng)計(jì)
隨筆 - 37
文章 - 0
評(píng)論 - 24
引用 - 0
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(3)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆檔案
2009年11月 (1)
2009年6月 (1)
2009年5月 (3)
2009年3月 (2)
2008年12月 (1)
2008年11月 (3)
2008年10月 (4)
2008年9月 (1)
2008年7月 (3)
2008年6月 (1)
2008年4月 (1)
2008年3月 (3)
2008年2月 (2)
2007年11月 (2)
2007年10月 (9)
搜索
最新評(píng)論
1.?re: richedit2
我想知道SendMessage(hwndBuffer, EM_SETSEL,lparam,wparam);中l(wèi)param和wparam的含義。。。求告知
--gook
2.?re: c++之父之一席之談(也許是笑話,但不要僅僅當(dāng)成笑話)[未登錄](méi)
可以再無(wú)知一點(diǎn)么
--哈哈
3.?re: C++ 枚舉類型的思考[未登錄](méi)
operator int()還是需要的
支持
這個(gè)很需要的
現(xiàn)在C++11 出來(lái)了,域的問(wèn)題解決了
但還是需要 operator int()
--kk
4.?re: 毫秒級(jí)計(jì)時(shí)器
國(guó)外新聞
http://www.ciqol.net/seenews
--外貿(mào)領(lǐng)航
5.?re: C++ 枚舉類型的思考[未登錄](méi)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--K
閱讀排行榜
1.?C++ 枚舉類型的思考(6399)
2.?毫秒級(jí)計(jì)時(shí)器(5515)
3.?C++界面庫(kù) - Xtreme Toolkit Pro[轉(zhuǎn)載](3414)
4.?在控制臺(tái)程序中隱藏控制臺(tái)窗口(2615)
5.?Google單元測(cè)試框架(轉(zhuǎn))(2376)
評(píng)論排行榜
1.?內(nèi)存填充值的理解(8)
2.?C++ 枚舉類型的思考(7)
3.?c++之父之一席之談(也許是笑話,但不要僅僅當(dāng)成笑話)(2)
4.?字節(jié)對(duì)齊(2)
5.?C/C++中的近指令、遠(yuǎn)指針和巨指針(1)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美一区二区久久久
|
欧美一区二区三区视频免费
|
久久全国免费视频
|
欧美有码在线视频
|
久久成人一区二区
|
久久综合给合久久狠狠狠97色69
|
久久成人这里只有精品
|
久久综合国产精品
|
欧美日韩免费网站
|
国产精品久久一级
|
激情视频一区二区三区
|
亚洲精品一品区二品区三品区
|
一区二区三区日韩在线观看
|
午夜精品一区二区三区在线视
|
久久久成人精品
|
亚洲国产婷婷综合在线精品
|
亚洲观看高清完整版在线观看
|
夜夜嗨av一区二区三区
|
欧美一区二区三区另类
|
美女精品视频一区
|
国产精品一区二区男女羞羞无遮挡
|
国产综合色产
|
亚洲一区成人
|
欧美成人精精品一区二区频
|
亚洲美女在线一区
|
久久久久久91香蕉国产
|
欧美午夜免费电影
|
1024亚洲
|
久久国产精品72免费观看
|
亚洲经典自拍
|
久久成人18免费网站
|
欧美日韩在线三级
|
亚洲国产女人aaa毛片在线
|
午夜影视日本亚洲欧洲精品
|
亚洲国产mv
|
久久久不卡网国产精品一区
|
欧美性理论片在线观看片免费
|
亚洲第一色中文字幕
|
久久精品av麻豆的观看方式
|
一区二区三区四区五区精品
|
欧美高清自拍一区
|
亚洲电影欧美电影有声小说
|
欧美在线综合
|
亚洲一区免费网站
|
国产精品久久波多野结衣
|
亚洲日本va午夜在线电影
|
久久综合婷婷
|
午夜一区在线
|
国产精品一区二区欧美
|
亚洲一级黄色
|
99国产精品国产精品久久
|
欧美福利视频一区
|
亚洲日本理论电影
|
亚洲国产高清一区
|
欧美激情国产高清
|
一区二区三区四区五区在线
|
亚洲美女中文字幕
|
久久精品亚洲精品
|
欧美a级片一区
|
亚洲综合日韩
|
国产精品美女久久久久久久
|
亚洲一区二区在线免费观看
|
亚洲精品久久久久久久久久久久
|
美女主播一区
|
亚洲精品乱码久久久久久久久
|
欧美**人妖
|
欧美xx69
|
亚洲图片欧洲图片av
|
av不卡在线
|
国产精品亚洲产品
|
久久久www成人免费无遮挡大片
|
久久gogo国模裸体人体
|
伊人狠狠色j香婷婷综合
|
男女激情视频一区
|
欧美电影免费观看网站
|
国产一区白浆
|
久热国产精品视频
|
久久综合狠狠综合久久综合88
|
久久久99国产精品免费
|
在线免费精品视频
|
亚洲国产日韩欧美一区二区三区
|
欧美激情视频在线播放
|
国产精品午夜视频
|
久久久久女教师免费一区
|
久久久久91
|
一本色道久久综合精品竹菊
|
一区二区日韩欧美
|
韩国av一区二区三区四区
|
欧美福利视频在线
|
国产精品videosex极品
|
久久久久久综合
|
欧美日韩色一区
|
久久在线免费观看视频
|
欧美激情 亚洲a∨综合
|
亚洲欧美精品suv
|
美女国产精品
|
欧美在线观看网址综合
|
蜜桃av一区二区在线观看
|
亚洲综合国产
|
免费欧美高清视频
|
欧美一区亚洲一区
|
欧美国产欧美亚洲国产日韩mv天天看完整
|
一区二区免费在线观看
|
欧美在线观看你懂的
|
一本色道久久综合亚洲二区三区
|
亚洲欧美一区二区精品久久久
|
91久久综合亚洲鲁鲁五月天
|
亚洲一区三区电影在线观看
|
亚洲三级影片
|
久久精品二区
|
午夜伦理片一区
|
欧美精品一区视频
|
免费不卡在线观看av
|
国产精品亚洲精品
|
亚洲精品专区
|
蜜臀91精品一区二区三区
|
国产精品女主播一区二区三区
|
免费日韩成人
|
国产视频欧美
|
亚洲午夜一区
|
亚洲午夜一级
|
欧美精品乱码久久久久久按摩
|
毛片一区二区三区
|
国模私拍视频一区
|
午夜精品一区二区三区电影天堂
|
亚洲视频欧美在线
|
欧美激情综合网
|
亚洲成色最大综合在线
|
午夜久久黄色
|
欧美精品国产精品
|
欧美国产日产韩国视频
|
国产一区在线免费观看
|
亚洲宅男天堂在线观看无病毒
|
亚洲一级二级在线
|
国产精品www.
|
亚洲免费在线播放
|
久久国产精品一区二区
|
国产日韩精品一区观看
|
午夜精品一区二区三区四区
|
欧美一区二区三区视频免费
|
国产精品欧美在线
|
亚洲欧美国产精品va在线观看
|
欧美一区二区三区免费观看视频
|
午夜精品久久久久久久久久久
|
欧美色区777第一页
|
亚洲午夜在线观看
|
久久精品成人
|
在线日韩日本国产亚洲
|
麻豆久久精品
|
亚洲人成人99网站
|
一区二区三区导航
|
国产精品高清在线
|
午夜伦理片一区
|
欧美.www
|
一区二区三区www
|
国产麻豆成人精品
|
久久久999国产
|
亚洲福利视频一区
|
亚洲一区视频
|
国产综合欧美
|
欧美激情一区二区三区四区
|
一本一本久久a久久精品综合麻豆
|
午夜精品三级视频福利
|
精东粉嫩av免费一区二区三区
|
欧美/亚洲一区
|
亚洲伊人一本大道中文字幕
|
美女精品一区
|
亚洲午夜在线观看视频在线
|
国产午夜精品一区理论片飘花
|
久久综合999
|
亚洲视频观看
|
亚洲二区视频
|
久久久久一区
|
亚洲一区二区在线免费观看视频
|
激情久久久久久
|
欧美日韩亚洲一区二区
|
久久久久国产精品www
|
日韩视频一区二区在线观看
|
久久免费精品视频
|
亚洲男人天堂2024
|
亚洲三级毛片
|
激情欧美日韩
|
国产麻豆午夜三级精品
|
可以看av的网站久久看
|
国产色婷婷国产综合在线理论片a
|
久热这里只精品99re8久
|
亚洲私人影院在线观看
|
欧美激情一区二区三区全黄
|
久久成人在线
|
亚洲婷婷在线
|
99精品欧美一区二区三区
|
黄色日韩网站视频
|
国产精品亚洲成人
|
欧美日韩专区
|
欧美区一区二
|
欧美成人蜜桃
|
裸体一区二区
|
久久午夜视频
|
久久精品综合
|
久久精品亚洲乱码伦伦中文
|