.NET 并行(多核)编程系列之七 共享数据问题和解决概述
2010-06-24 07:09
411 查看
.NET 并行(多核)编程系列之七 共享数据问题和解决概述
前言:之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行编程中实际遇到一些问题,接下来的几篇将会讲述数据共享问题。
本篇的议题如下:
数据竞争
解决方案提出
顺序的执行解决方案
数据不变解决方案
系列文章链接:
.NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之二 从Task开始
.NET 4 并行(多核)编程系列之三 从Task的取消
.NET 4 并行(多核)编程系列之四 Task的休眠
.NET 并行(多核)编程系列之五 Task执行和异常处理
.NET 并行(多核)编程系列之六 Task基础部分完结篇
.NET 并行(多核)编程系列之七 共享数据问题和解决概述
在开始之前,首先,我们来看一个很有趣的例子:
代码
using System;
class ImmutableBankAccount
{
public const int AccountNumber = 123456;
public readonly int Balance;
public ImmutableBankAccount(int InitialBalance)
{
Balance = InitialBalance;
}
public ImmutableBankAccount()
{
Balance = 0;
}
}
class App
{
static void Main(string[] args)
{
// create a bank account with the default balance
ImmutableBankAccount bankAccount1 = new ImmutableBankAccount();
Console.WriteLine("Account Number: {0}, Account Balance: {1}",
ImmutableBankAccount.AccountNumber, bankAccount1.Balance);
// create a bank account with a starting balance
ImmutableBankAccount bankAccount2 = new ImmutableBankAccount(200);
Console.WriteLine("Account Number: {0}, Account Balance: {1}",
ImmutableBankAccount.AccountNumber, bankAccount2.Balance);
// wait for input before exiting
Console.WriteLine("Press enter to finish");
Console.ReadLine();
}
}
数据不变的解决方案不是很常用,因为它对数据限制太大了。
今天暂时就写到这里,谢谢大家。
版权为小洋和博客园所有,转载请标明出处给作者。
http://www.cnblogs.com/yanyangtian
前言:之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行编程中实际遇到一些问题,接下来的几篇将会讲述数据共享问题。
本篇的议题如下:
数据竞争
解决方案提出
顺序的执行解决方案
数据不变解决方案
系列文章链接:
.NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之二 从Task开始
.NET 4 并行(多核)编程系列之三 从Task的取消
.NET 4 并行(多核)编程系列之四 Task的休眠
.NET 并行(多核)编程系列之五 Task执行和异常处理
.NET 并行(多核)编程系列之六 Task基础部分完结篇
.NET 并行(多核)编程系列之七 共享数据问题和解决概述
在开始之前,首先,我们来看一个很有趣的例子:
代码
using System;
class ImmutableBankAccount
{
public const int AccountNumber = 123456;
public readonly int Balance;
public ImmutableBankAccount(int InitialBalance)
{
Balance = InitialBalance;
}
public ImmutableBankAccount()
{
Balance = 0;
}
}
class App
{
static void Main(string[] args)
{
// create a bank account with the default balance
ImmutableBankAccount bankAccount1 = new ImmutableBankAccount();
Console.WriteLine("Account Number: {0}, Account Balance: {1}",
ImmutableBankAccount.AccountNumber, bankAccount1.Balance);
// create a bank account with a starting balance
ImmutableBankAccount bankAccount2 = new ImmutableBankAccount(200);
Console.WriteLine("Account Number: {0}, Account Balance: {1}",
ImmutableBankAccount.AccountNumber, bankAccount2.Balance);
// wait for input before exiting
Console.WriteLine("Press enter to finish");
Console.ReadLine();
}
}
数据不变的解决方案不是很常用,因为它对数据限制太大了。
今天暂时就写到这里,谢谢大家。
版权为小洋和博客园所有,转载请标明出处给作者。
http://www.cnblogs.com/yanyangtian
相关文章推荐
- .NET 并行(多核)编程系列之七 共享数据问题和解决概述
- .NET 并行(多核)编程系列之七 共享数据问题和解决概述
- 一起谈.NET技术,.NET并行(多核)编程系列之七 共享数据问题和解决概述
- .NET 4并行编程之共享数据问题和解决概述
- .NET 4 并行(多核)编程系列之一入门介绍
- .NET 4 并行(多核)编程系列之三 从Task的取消
- .NET 4 并行(多核)编程系列之一入门介绍
- .NET 4 并行(多核)编程系列之二 从Task开始
- .NET 4 并行(多核)编程系列之三 从Task的取消
- .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
- [转].NET 4 并行(多核)编程系列之二 从Task开始
- .NET 4 并行(多核)编程系列之三 从Task的取消
- .NET 4 并行(多核)编程系列之二 从Task开始
- 一起谈.NET技术,.NET 4 并行(多核)编程系列之一入门介绍
- .NET 4 并行(多核)编程系列之六
- .NET 4 并行(多核)编程系列之二
- .NET 4 并行(多核)编程系列之一入门介绍
- .NET“.NET研究” 4 并行(多核)编程系列之一入门介绍
- .NET 并行(多核)编程系列之六 Task基础部分完结篇
- .NET 4 并行(多核)编程系列之三