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.
    

    附:官方示例

  • 相关阅读:
    CodeForces 219D Choosing Capital for Treeland (树形DP)
    POJ 3162 Walking Race (树的直径,单调队列)
    POJ 2152 Fire (树形DP,经典)
    POJ 1741 Tree (树的分治,树的重心)
    POJ 1655 Balancing Act (树的重心,常规)
    HDU 2196 Computer (树形DP)
    HDU 1520 Anniversary party (树形DP,入门)
    寒门子弟
    JQuery选择器(转)
    (四)Web应用开发---系统架构图
  • 原文地址:https://www.cnblogs.com/icoolno1/p/6913100.html
Copyright © 2011-2022 走看看