zoukankan      html  css  js  c++  java
  • 一个简单示例看懂.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.
    

    附:官方示例

  • 相关阅读:
    sed附加命令
    01_Mac下安装homebrew
    02_linux常用指令
    18_Condition条件
    01.IDEA常用快捷键
    17_重入锁ReentrantLock
    秒杀系统架构分析与实战--转载
    16_Queue_利用wait()和notify()编写一个阻塞队列
    15_volatile
    14_synchronized深入
  • 原文地址:https://www.cnblogs.com/icoolno1/p/6913100.html
Copyright © 2011-2022 走看看