色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

.NET并行(多核)編程系列之七 共享數據問題和解決概述

  之前的文章介紹了了并行編程的一些基礎的知識,從本篇開始,將會講述并行編程中實際遇到一些問題,接下來的幾篇將會講述數據共享問題。

  本篇的議題如下:

  1.數據競爭

  2.解決方案提出

  3.順序的執行解決方案

  4.數據不變解決方案

  在開始之前,首先,我們來看一個很有趣的例子:

class BankAccount   
{
public int Balance
{
get;
set;
}
}
class App
{
static void Main(string[] args)
{
// create the bank account instance
BankAccount account = new BankAccount();
// create an array of tasks
Task[] tasks = new Task[10];
for (int i = 0; i < 10; i++)
{
// create a new task
tasks[i] = new Task(() =>
{
// enter a loop for 1000 balance updates
for (int j = 0; j < 1000; j++)
{
// update the balance
account.Balance = account.Balance + 1;
}
});
// start the new task
tasks[i].Start();
}

// wait for all of the tasks to complete
Task.WaitAll(tasks);

// write out the counter value
Console.WriteLine("Expected value {0}, Counter value: {1}",
10000, account.Balance);

// wait for input before exiting
Console.WriteLine("Press enter to finish");
Console.ReadLine();
}
}

NET技術.NET并行(多核)編程系列之七 共享數據問題和解決概述,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 同仁县| 娄烦县| 乳源| 五华县| 承德县| 福贡县| 浑源县| 英吉沙县| 长子县| 旬邑县| 大悟县| 龙州县| 岳西县| 吉木萨尔县| 兴义市| 绩溪县| 南昌市| 仪陇县| 崇礼县| 浪卡子县| 阆中市| 万山特区| 南昌市| 扶余县| 万年县| 舞阳县| 万年县| 怀安县| 麟游县| 新田县| 博白县| 沂南县| 萍乡市| 沙雅县| 顺昌县| 久治县| 金华市| 汝阳县| 略阳县| 古交市| 华安县|