亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 6497 | 回復(fù): 19
打印 上一主題 下一主題

[C] UINT8/UINT32做為共享數(shù)據(jù),是否需要加鎖 - 原子操作問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-12-27 23:20 |只看該作者 |倒序瀏覽
本帖最后由 newroot_phy 于 2010-12-29 13:58 編輯

讀寫一個8bit的char需要加鎖嗎?!在什么具體環(huán)境下,為什么!

前些天跟朋友討論了這個問題,朋友說在匯編級別上,一個讀操作也是有多條指令的,所以也是有可能被中斷的!

以前我一直以為讀寫一個int, char之類的數(shù)據(jù)是不需要加鎖的,我也是從外部(網(wǎng)絡(luò))了解到這個觀點,沒有什么理論依據(jù),所以請大家指點!

-----------------
1. 修改主題

論壇徽章:
0
2 [報告]
發(fā)表于 2010-12-28 09:23 |只看該作者
不需要,系統(tǒng)api函數(shù)就是一原子操作,不會中間中斷的

論壇徽章:
0
3 [報告]
發(fā)表于 2010-12-28 09:29 |只看該作者
不需要,系統(tǒng)api函數(shù)就是一原子操作,不會中間中斷的
xiaobenniao514 發(fā)表于 2010-12-28 09:23

還真是什么都敢說

論壇徽章:
0
4 [報告]
發(fā)表于 2010-12-28 09:33 |只看該作者
有人說這些操作都不是原子的

論壇徽章:
0
5 [報告]
發(fā)表于 2010-12-28 09:38 |只看該作者
讀寫一個8bit的char需要加鎖嗎?!在什么具體環(huán)境下,為什么!

前些天跟朋友討論了這個問題,朋友說在匯編級別 ...
newroot_phy 發(fā)表于 2010-12-27 23:20



    弄清楚是否原子跟是否可重入,是否線程安全后,就不會迷惑了。 對于應(yīng)用來說,最多只需要考慮到可重入的問題

論壇徽章:
0
6 [報告]
發(fā)表于 2010-12-28 09:50 |只看該作者
不一定要加鎖,可以用原子變量嘛

論壇徽章:
0
7 [報告]
發(fā)表于 2010-12-28 13:01 |只看該作者
不需要,系統(tǒng)api函數(shù)就是一原子操作,不會中間中斷的
xiaobenniao514 發(fā)表于 2010-12-28 09:23



    {:3_205:} 不是吧!這跟系統(tǒng)API有什么關(guān)系。

論壇徽章:
0
8 [報告]
發(fā)表于 2010-12-28 13:06 |只看該作者
不一定要加鎖,可以用原子變量嘛
wwwhenan 發(fā)表于 2010-12-28 09:50



    呵呵!不局限某種特殊的數(shù)據(jù)類型!

我只明想找些證據(jù)證明存取uint8/uint32之類的數(shù)據(jù)類型是否是原子操作!

論壇徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16賽季CBA聯(lián)賽之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金雞報曉
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年紀念徽章
日期:2016-11-09 13:19:1015-16賽季CBA聯(lián)賽之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-03 06:20:002015七夕節(jié)徽章
日期:2015-08-21 11:06:17IT運維版塊每日發(fā)帖之星
日期:2015-08-09 06:20:002015亞冠之吉達阿赫利
日期:2015-07-03 08:39:42
9 [報告]
發(fā)表于 2010-12-28 13:10 |只看該作者
用了原子操作就不用吧,如果沒用可能會產(chǎn)生讀出/寫入的匯編,就會被打斷了。

論壇徽章:
0
10 [報告]
發(fā)表于 2010-12-28 13:36 |只看該作者
弄清楚是否原子跟是否可重入,是否線程安全后,就不會迷惑了。 對于應(yīng)用來說,最多只需要考慮到可 ...
linyunxian 發(fā)表于 2010-12-28 09:38



可重入函數(shù)
    可重入的函數(shù)簡單來說就是可以被中斷的函數(shù)
原子操作
    在一個CPU時鐘內(nèi)保證完成的一個指令

不知道理解對不對!

剛剛跟同事又聊了一下,結(jié)論是讀寫Uint8是有可能被中斷的,拿一個賦值操作(MIPS)來說a = b;(因為不熟悉匯編,沒法通過匯編進行說明)

1. load b 地址到寄存器 R1
2. load b 的值到寄存器 R2
3. load a 地址到寄存器 R3
4. 將R2賦值到R3

所以目前的結(jié)論是UINT8在多線程(進程)之間共享(讀寫),是需要加鎖保護的!

請大家補充!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP