2021-09-13 C#并行、并发、多线程学习记录

内容总结

1.并行、并发、多线程三者概念
2.实现代码并行的类-Parallel

1)三种常用方法:invoke、for、foreach的使用
2)捕捉异常的方法

概念

参考资料:https://blog.csdn.net/qq_33290787/article/details/51790605

1.并行

指两个或两个以上事件(或线程)在同一时刻发生,不同事件(线程)同一时刻,在不同CPU资源上(多核),同时执行。如图所示
在这里插入图片描述

2.并发

一个CPU在若干道程序(或线程)之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。如下图所示
在这里插入图片描述

3.多线程

在一个进程下有多个线程。各个线程执行自己的任务,这些任务可以”同时进行“。
1)我们通过多线程实现并发或并行;
2)如何理解进程与线程
例:同时开启word、excle、Visio,此为三个进程同时启动即多进程;在word中打印某一文件,同时修改该文件,此为两个线程同时进行即多线程

Parallel类

1.Stopwatch类作用

1)使用前需先引入using System.Diagnostics;
2)当我们在调试C#程序的时候,往往需要记录下代码的运行时间,来测试代码的运行效率,Stopwatch类就是统计时间的方法之一。

2.Parallel.Invoke 最简洁的将串行代码并行化的方法

参考资料: https://www.cnblogs.com/yunfeifei/p/3993401.html

代码简述
1、创建ParallelDemo类,类中包括三个方法:Run1()、Run2()、ParallelInvok()
2、Run1()、Run2():延迟2s、3s
3、ParallelInvok():用于测试,对比在普通情况下与Parallel.Invoke()下代码运行时间

using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp_parallel1
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            ParallelDemo parallelDemo = new ParallelDemo();
            parallelDemo.ParallelInvok();
        } 
    }
    /// <summary>
    /// Parallel.Invoke
    /// </summary>
    public class ParallelDemo
    {
   
        Stopwatch stopwatch = new Stopwatch();
        public void Run1()
        {
   
            Thread.Sleep(2000);
            Console.WriteLine("Task 1 is cost 2 sec");
        }

        publi
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值