国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 内乡县| 昂仁县| 肃宁县| 长岛县| 土默特左旗| 德惠市| 留坝县| 本溪| 乌鲁木齐市| 潮安县| 华亭县| 唐海县| 清远市| 东乌珠穆沁旗| 衡阳县| 甘孜| 北安市| 昌邑市| 上杭县| 湖南省| 平凉市| 武胜县| 纳雍县| 富锦市| 乡宁县| 涿鹿县| 海兴县| 临沂市| 鄂托克前旗| 二连浩特市| 闸北区| 古浪县| 蚌埠市| 喀什市| 屏山县| 武山县| 炎陵县| 正安县| 长治市| 宁城县| 台中市|