关于线程同步的问题,求解

贰到不行 贰到不行 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有个小程序如下:

public class shareMemory
{
public int Memory { get; set; }
}
public class increaseMemory
{
private shareMemory test;
public increaseMemory(shareMemory obj)
{
this.test = obj;
}
public void increase()
{
for (int i = 0; i < 100000; i++)
{
test.Memory++;
}
}
}
class Program
{
static void Main(string[] args)
{
shareMemory obj = new shareMemory();
Task[] tasks = new Task[5];
for (int i = 0; i < 5; i++)
{
tasks[i] = new Task(new increaseMemory(obj).increase);
tasks[i].Start();
}
for (int i = 0; i < 5; i++)
{
tasks[i].Wait();
}
Console.WriteLine(obj.Memory);
Console.ReadKey();
}
}

问题是如果我不将共享对象设置为线程安全对象,那么程序计算结果就不会是正确结果,但是这五个线程即便会出现打断彼此的情况,也应该会记录自己的运行情况。在获得CPU的使用权的时候也还是能够按照原来的断点继续运行。也就是说即便打断也能够自加100000次。求解答,各位大神
...全文

相关推荐

第2讲 搜索算法-N皇后问题的自动求解.ppt

"该资源是一份关于搜索算法应用于解决N皇后问题的PPT,主要讲解了N皇后问题的描述、手动求解、自动求解的程序设计以及参考程序。内容涵盖了需求分析、棋盘绘制、搜索算法的实现和线程同步在解题中的应用。"

老帽爬新坡

基于Java多线程的预处理迭代并行求解器.zip

**并行求解器**:并行计算是指同时使用多个处理器或计算节点来解决一个问题。并行求解器设计的目标是将计算任务分解为多个可并行的部分,然后在多线程或多进程环境中执行。

mYlEaVeiSmVp

并行计算回溯法求解数独问题c++

在应用OpenMP于回溯法求解数独时,关键在于如何有效地划分任务并管理数据同步。通常,我们可以为每个未填充的数独单元格创建一个线程,每个线程负责尝试填充特定单元格的可能数字。

shiter

基于Java多线程的预处理迭代并行求解器.pdf

在Java多线程的背景下,设计一个并行求解器需要考虑线程的创建、管理、同步和通信。Java提供了一系列的并发工具类和接口,如java.util.concurrent包,用以支持复杂的并行程序设计。

结冰架构

Synchronization 线程与同步part1.pdf

在并行求解问题时,如计算面积的四分法,每个部分计算总区域的一个独立区域,但求和过程必须在所有部分完成计算后才能进行。2. 并行化处理的示例:文档中提到了egrep命令的并行化。

poliverlin
评论 4
收藏 已收藏
分享
返回顶部
贰到不行
C# 111,128 成员 642,537 内容