国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

利用Interlocked實(shí)現(xiàn)線程同步

2019-11-14 14:13:17
字體:
供稿:網(wǎng)友

    線程同步有很多種方式,如果只是共享整型數(shù)據(jù),可以使用Interlocked進(jìn)行同步。

    下面給出一個例子,來說明如何利用Interlocked進(jìn)行同步。

    一、例子說明

1             int sum = 0;2             Parallel.For(1, 10001, i =>3             {4                 sum += 1;5             });6             tbContent.Text = "結(jié)果:" + sum;

    看上面這段代碼,經(jīng)過10000次并行循環(huán)后,預(yù)期sum變量最后的值為10000。然而,由于資源沖突的原因,sum最后的值并不確定,多數(shù)情況小于10000。

    二、解決方案

    可以有很多種方式來進(jìn)行同步,比如專門用一個object對象同步。不過,這里我們使用Interlocked來進(jìn)行同步,代碼如下:

1             int sum = 0;2             Parallel.For(1, 10001, i =>3             {4                 Interlocked.Increment(ref sum);5             });6             tbContent.Text = "結(jié)果:" + sum;

    運(yùn)行一下,sum每次運(yùn)行的值都為10000。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 迭部县| 黎城县| 石门县| 封丘县| 沈阳市| 栖霞市| 上思县| 海安县| 邓州市| 瓦房店市| 平顶山市| 永吉县| 古交市| 双江| 翁牛特旗| 子长县| 桐柏县| 理塘县| 满城县| 奉新县| 台南市| 亳州市| 永定县| 丹阳市| 阳泉市| 台北市| 定结县| 湘潭县| 河源市| 沂水县| 甘德县| 西昌市| 武川县| 万山特区| 丰县| 古丈县| 福贡县| 德江县| 三门峡市| 平潭县| 仁化县|