C# 并行運算方法簡析

一、概述

首先應該明白并行和并發的區別。
并發就是有多個幾乎同時到達的線程需要被處理,但只有有限個CPU,所以需要競爭上崗。
并行指有多個CPU資源同時處理多個線程,不存在競爭的概念,可以大量節省運行時間。

二、實現方法

C#中目前有Tasks命名空間中的Parallel類來完成并行開發。

2.1 Parallel

Parallel類有三個常見的方法:Invoke,For,Foreach,都可以實現多個方法的并行計算。For和ForEach方法多次調用同一個方法, Invoke可以同時調用不同的方法。

2.12 Invoke

stopWatch.Start();Parallel.Invoke(() => { Run1(); }, () => { Run2(); });stopWatch.Stop();
Console.WriteLine("Parallel run " + stopWatch.ElapsedMilliseconds + " ms.");

該方法可以將串行方法并行化,可以調用StopWatch類進行計時。

2.12 For

Parallel.For()可以無序并行運行迭代,類似for循環。

ParallelLoopResult result = Parallel.For(0, 100, (int i, ParallelLoopState pls) =>{Console.WriteLine("i: {0}, task : {1}", i, Task.CurrentId);Thread.Sleep(10);});

2.13 ForEach

該方法無序遍歷實現IEnumerable或者List集合。

List<int> list = new List<int>();list.Add(0);Parallel.ForEach(list, item =>{A(item);});

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

強烈建議使用國外DNS解析域名,解決訪問速度和某些訪問故障!

域名解析的基本原理是把域名翻譯成IP地址&#xff0c;以便計算機能夠進一步通信&#xff0c;傳遞網址和內容等。  域名劫持就是在劫持的網絡范圍內攔截域名解析的請求&#xff0c;分析請求的域名&#xff0c;把審查范圍以外的請求放行&#xff0c;否則直接返回假的IP地址或者…

Windows 8 系統快捷鍵熱鍵列表收集

值得收藏參考的 Windows 8 系統快捷鍵熱鍵列表收集大全匯總&#xff0c;鍵盤黨效率黨必備啊&#xff01; 相信不少喜歡接觸新鮮軟件的同學都已經給電腦安裝上Windows 8 操作系統了吧&#xff01;這個系統優秀與否我們暫且不討論&#xff0c;作為一個鍵盤黨&#xff0c;學習了解…

格式化字符串使用

#codingutf-8 可以指定所需長度的字符串的對齊方式: < &#xff08;默認&#xff09;左對齊 > 右對齊 ^ 中間對齊 &#xff08;只用于數字&#xff09;在小數點后進行補齊 print 1:\t|{0:>10},.format(wangyu) print 2:\t|{0:4.2f}.format(1.1415926) print 3:\t|,…

Python中利用plt顯示中文標題解決方案

解決方法 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False plt.title(灰度級別頻率圖) plt.show()

Pytorch基礎(三)—— DataSet的應用

一、概念 Pytorch的標準數據集包括很多種類型&#xff0c;如CIFAR&#xff0c;COCO&#xff0c;KITTI&#xff0c;MNIST等&#xff0c;我們可以在官網查看。當然我們也可以做數據集&#xff0c;但需要自己標注。 二、如何調用數據集 一、調用torchvision 在程序中調用torch…

【圖像處理】——Python霍夫變換之直線檢測(主要是兩個函數HoughlinesHoughlinesP)

目錄 一、原理(摘自《數字圖像處理岡薩雷斯》) 2、Python函數 參數詳解 3、效果 4、實

實驗五實驗報告

實 驗 報 告 課程&#xff1a;信息安全系統設計基礎 班級&#xff1a; 1353 姓名&#xff1a;魏靜靜 劉虹辰 文藝 學號&#xff1a;20135302 20135325 20135331 成績&#xff1a; 指導教師&#xff1a;婁佳鵬 實驗日期&#xff1a…

Eclipse快捷鍵 10個最有用的快捷鍵

Eclipse中10個最有用的快捷鍵組合 一個Eclipse骨灰級開發者總結了他認為最有用但又不太為人所知的快捷鍵組合。通過這些組合可以更加容易的瀏覽源代碼&#xff0c;使得整體的開發效率和質量得到提升。 1. ctrlshiftr&#xff1a;打開資源 這可能是所有快捷鍵組合中最省時間的了…

iOS 檢查指定日期是否在當前日期之前

iOS檢查指定日期是否在當前日期之前, 直接上代碼: - (BOOL)checkProductDate: (NSString *)tempDate {NSDateFormatter *dateFormatter [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:"yyyy-MM-dd"];NSDate *date [dateFormatter dateFromString:t…

Pytorch基礎(四)—— 卷積層

一、概念 卷積從數學的角度講是一種矩陣的運算方法。我們可以用一個卷積核對一個矩陣進行卷積運算&#xff0c;具體運算過程圖示可以見pytorch官網。 卷積運算按輸入數據的通道數可分為單通道和多通道兩種。 單通道是指卷積核只有一個的情況。 多通道包括兩種。 分別是單個…

【圖像處理】——創建一個新的圖片

方法一:直接復制一個已經存在的圖片 img.copy() 如果是想生成一個指定大小的圖片,則可以通過numpy數組進行創建 方法二:通過numpy創建(注意有坑) img = numpy.zeros((h,w))#h,w是指定的圖像的高和寬,這樣看似可以其實不然上述方法得到的圖像不是8位的,但是圖像數組的…

BUAA 更大公約數

題目鏈接 給一個n*m的矩陣&#xff0c; 刪除里面的一行一列&#xff0c; 使得剩下的數的最大公約數最大。 一個格子&#xff08;x&#xff0c;y&#xff09;&#xff0c; 先預處理出&#xff08;1,1)到這個格子的內所有數的最大公約數&#xff0c; 同理處理出(1, m), (n, m), (…

How to make a Logical Volume ON AIX5.3

本文轉自 xkdcc 51CTO博客&#xff0c;原文鏈接&#xff1a;http://blog.51cto.com/brantc/116431&#xff0c;如需轉載請自行聯系原作者1. 確定要建立的卷大小&#xff0c;比如700M 2. 檢查要建立邏輯卷的卷組上的PP大小&#xff08;PP:物理分區&#xff0c;PP si…

啟動Tomcat 7一閃而過的問題

點擊bin目錄&#xff08;"D:\apache-tomcat-7.0.33\bin"&#xff09;下的startup.bat一閃而過&#xff0c;什么都沒發生... 解決&#xff1a;環境變量里配置一個JAVA_HOME&#xff0c;值為JDK的home目錄&#xff08;"D:\Java\jdk1.7.0_80"&#xff09;轉載…

Pytorch基礎(五)—— 池化層

一、概念 池化就是把數據壓縮的過程&#xff0c;屬于下采樣的一種方法&#xff0c;可以顯著降低神經網絡計算復雜度&#xff0c;減少訓練中的過擬合&#xff0c;同時可以使數據具有一定的不變性。 池化從方法上來講可以分為average Pooling、max Pooling、Overlapping Poolin…

【圖像處理】——鼠標點擊圖像的一處,獲得點擊點的坐標值

import cv2 import numpy as np# 圖片路徑 img = cv2.imread(5-.jpg) a = [] b = []def on_EVENT_LBUTTONDOWN(event, x, y, flags, param)::param event: 鼠標事件:param x: 點擊點的橫坐標:param y: #點擊點的縱坐標:param flags: :param param: :return: if event == cv2.EV…

解決sybase數據庫的死鎖問題

在使用數據庫操作時&#xff0c;由于多人同時使用&#xff0c;導致數據庫某些表無法訪問&#xff0c;原因可能是由于多個用戶操作同一個表&#xff0c;爭搶統一資源出現死鎖現象&#xff0c;現將解決死鎖的方法總結如下&#xff1a; 1、執行 sp_who 語句&#xff0c;觀察執行結…

揭開.NET 2.0配置之謎(一)

2010-03-20 15:33 by 吳秦, 4828 閱讀, 20 評論, 收藏, 編輯 此文是譯文&#xff0c;原文是Jon Rista&#xff0c;Unraveling the Mysteries of .NET 2.0 Configuration&#xff0c;由于這篇文章比較長&#xff0c;所以我就分為幾部分來翻譯。 以前沒有翻譯過外文&#xff0c;看…

Pytorch基礎(六)——激活函數

一、概念 激活函數顧名思義&#xff0c;就是一種可以給神經網絡注入靈魂的一種方法&#xff0c;也可以稱之為激活層。其計算就是將線性的函數轉變為非線性函數的過程&#xff0c;只有這樣&#xff0c;我們制作的深層神經網絡才能無限逼近真實值。 自神經網絡發展到目前為止&am…

android數據的五種存儲方式

Android提供了5種方式存儲數據1 使用SharedPreferences存儲數據它的本質是基于XML文件存儲key-value鍵值對數據&#xff0c;通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/< >/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改&…