• 一个简单示例看懂.Net 并行编程


    此示例尽量以最简洁的代码演示并行处理的功能,此示例代码中分别用单线程和多线程分别执行5次耗时1秒的操作。打印出执行过程及耗时。

    以下为示例代码,.net framework要求4.0以上。

    using System;
    using System.Collections.Generic;
    using System.Collections.Concurrent;
    using System.Diagnostics;
    using System.Linq;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace ParallelDemo
    {
    
        class Program
        {
            static void Main(string[] args)
            {
                // First do the sequential version.
                Console.WriteLine("Executing sequential loop...");
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
    
    //单线程执行
    for (int i = 0; i < 5; i++) { TestMethod(); } stopwatch.Stop(); Console.WriteLine("Sequential loop time in milliseconds: {0}", stopwatch.ElapsedMilliseconds); // Reset timer and results matrix. stopwatch.Reset(); Console.WriteLine("Executing parallel loop..."); stopwatch.Start();
    //多线程执行 Parallel.For(
    0, 5, i => TestMethod()); stopwatch.Stop(); Console.WriteLine("Parallel loop time in milliseconds: {0}", stopwatch.ElapsedMilliseconds); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } static void TestMethod() { var tid = Thread.CurrentThread.ManagedThreadId; Console.WriteLine("Thread {0} start", tid); Thread.Sleep(1000); Console.WriteLine("Thread {0} end", tid); } } }

    运行结果

    Executing sequential loop...
    Thread 9 start
    Thread 9 end
    Thread 9 start
    Thread 9 end
    Thread 9 start
    Thread 9 end
    Thread 9 start
    Thread 9 end
    Thread 9 start
    Thread 9 end
    Sequential loop time in milliseconds: 5004
    Executing parallel loop...
    Thread 9 start
    Thread 10 start
    Thread 11 start
    Thread 12 start
    Thread 13 start
    Thread 9 end
    Thread 10 end
    Thread 11 end
    Thread 12 end
    Thread 13 end
    Parallel loop time in milliseconds: 1024
    Press any key to exit.
    

    附:官方示例

  • 相关阅读:
    hibernate 批量增加 修改 删除
    Java WebService入门实例
    linux中Jetty的安装和配置
    Jetty与tomcat的比较
    在云上搭建大规模实时数据流处理系统
    大型开源日志系统比较
    JMX整理
    Gradle笔记——Gradle的简介与安装
    Groovy入门教程
    Apache Maven 入门篇 ( 上 )
  • 原文地址:https://www.cnblogs.com/icoolno1/p/6913100.html
Copyright © 2020-2023  润新知