C#~异步编程再续~大叔所理解的并行编程(Task&Parallel)

返回目录

并行这个概念出自.net4.5,它被封装在System.Threading.Tasks命名空间里,主要提供一些线程,异步的方法,或者说它是对之前Thread进行的二次封装,为的是让开发人员更方便的调用它,对于异步与多线程我们在之前的几讲里已经介绍过了,今天主要说说并行,并行也可以叫并行计算,即对于一个大任务,使用多个线程去计算它,这可以充分发挥多核CPU的优势,可以说是大事所趋!

先看一下并行编程(并行计算)的图像

aaarticlea/png;base64,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" alt="" />

对于两个任务,任务1执行需要1秒,任务2执行需要3秒,那么,如果顺序执行,它需要的时间为4秒(1+3),而如果是并行编程,那就运行时间为3秒,即(1和3一起运行,取最长的时间),这就是并行计算的魅力!

下面看两种并行的实现方式

一 Task实现的并行

      #region 并行Task
Console.WriteLine(DateTime.Now);
var task = Task.WhenAll(Task.Run(() => { Thread.Sleep(); }), Task.Run(() => { Thread.Sleep(); }));//多个task并行执行,不阻塞
task.ContinueWith((ctw) =>//当task完成后,执行这个回调
{
Console.WriteLine("并行完成" + DateTime.Now);
});
Console.WriteLine(DateTime.Now);
#endregion

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQUAAABDCAIAAAAagocDAAAEG0lEQVR4nO2dQXIjIQxFfTQfzUdjmWUWuY9nMTUWASS+aGxnOu8tptwgPqLRj93uds3lfr9/fX58fX7cbrfr9XoB+M3gBwADPwAY+AHAwA8ABn4AMPADgNH7oVTUkeU7jU7fUg+ZplE6UkOW562HxCmlpOr4rMjCeYZtNH6o98B7PT0MGnv+xqTKJZWbqFlG5l/QbOo4yFPJ5PjSIMeCH+otLxW1rG6GlB+G8dma6wXj/PuA4ZChWpybp9z3ennCZoLrh+FeDjcmriePbB17MVkdRVlZbzxEyS04k+J5hs14fgj2KehtWoZ1E+jr8cs6Q7z8L/LHuTrgSErZ8wybGfohru8+IKinaW+PHp+dNzujt15PISh9MZnseYbNeN8vNWHNHk/3KRU8nGsaH+QpThRIKev1xKeJBTrZ8wybedL3S6LOU+P16onz9w498alaoJM9z7CZoR9qHpHDdjG+bvQyScVn51UmVdabEmxaFhR6kawa5OD+NICBHwAM/ABg4AcAAz8AGPgBwMAPAEbw/FITyZffcH5Szy95vQAnIbg/7Q3BD3BaxPeHGvwApyXlB64f4OTw/gBg4AcAg++XAIy13z+8LV2Ap8L9aQADPwAY+AHAwA8ABn4AMPADgIEfAAx+/wBgcH8awBB//4Af4FfA83wARtYPmAHOzMLvgV6YHcBr0f2AGeD88P0SgCH+/sFrBzgV3J8GMPADgIEfAAz9+aW4Pe4KWL4UKf/+R9q14QADgvcH7xaEJxVcfMdVe9BIWAK2kfLDljeHoVuyFkrNCKCy5fohVZpicB22xT8Ac3o/ZIuvZD63LJjBG+VJeQ6JzeNNITptwZxxMlmHByILUsX5Y6QP74esJfNqdn1emvb2wR6istdYKn8OX08Pg0YvjVS5pHITNcvI/AuazS4EeSqZPA6zOm9j+/VD8VlOcji2Oe/17Mrrep+m9RQk1u93Nv5IrSj59wHejvRqcW6esjKLvsaXssUP3gp3Lbt8pxf3Zu/3clhAcT3FWa3FH9FRlJX1xkOU3IIzOZz3yBpfxHE/PNbvdfWNCp5O0fwQ7FPQ6yXprWI5fllniJf/Rf44VwccSUk5z/q63sD0eb6Ai1OdD5TTpwR7YU0OdfuwPuq0+33yFOLeYbZifHbe7Izeej2Ffn+nSwh0vFH6ut7AU+8/TJddnuCHYA+8UkvVpVhb0/hpreh14+UfL8ET14u414nnDRp/Cv+1H+rDkvnsOy1ZUeep8XrdxPl7h574VC3Q8Q7X1vUGUs8vBcvIxve9zXnsu+p/H+31Wb5UO+RtVdMuxisrSsVn51UmVdabEmxaFhSW1/U2fr4fpq+LcxUBkMb7vegwWPfDtEb7LsUDwXT4ATYwfF7DC16u76Y97mrerMU08AMc5w+d1M3DRwsjoAAAAABJRU5ErkJggg==" alt="" />

二 Parallel实现的并行

     #region 并行Parallel
Console.WriteLine(DateTime.Now);
Parallel.Invoke(() =>
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep();
}, () =>
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep();
});
Console.WriteLine(DateTime.Now);
Console.ReadKey(); #endregion

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQUAAABDCAIAAAAagocDAAAEG0lEQVR4nO2dQXIjIQxFfTQfzUdjmWUWuY9nMTUWASS+aGxnOu8tptwgPqLRj93uds3lfr9/fX58fX7cbrfr9XoB+M3gBwADPwAY+AHAwA8ABn4AMPADgNH7oVTUkeU7jU7fUg+ZplE6UkOW562HxCmlpOr4rMjCeYZtNH6o98B7PT0MGnv+xqTKJZWbqFlG5l/QbOo4yFPJ5PjSIMeCH+otLxW1rG6GlB+G8dma6wXj/PuA4ZChWpybp9z3ennCZoLrh+FeDjcmriePbB17MVkdRVlZbzxEyS04k+J5hs14fgj2KehtWoZ1E+jr8cs6Q7z8L/LHuTrgSErZ8wybGfohru8+IKinaW+PHp+dNzujt15PISh9MZnseYbNeN8vNWHNHk/3KRU8nGsaH+QpThRIKev1xKeJBTrZ8wybedL3S6LOU+P16onz9w498alaoJM9z7CZoR9qHpHDdjG+bvQyScVn51UmVdabEmxaFhR6kawa5OD+NICBHwAM/ABg4AcAAz8AGPgBwMAPAEbw/FITyZffcH5Szy95vQAnIbg/7Q3BD3BaxPeHGvwApyXlB64f4OTw/gBg4AcAg++XAIy13z+8LV2Ap8L9aQADPwAY+AHAwA8ABn4AMPADgIEfAAx+/wBgcH8awBB//4Af4FfA83wARtYPmAHOzMLvgV6YHcBr0f2AGeD88P0SgCH+/sFrBzgV3J8GMPADgIEfAAz9+aW4Pe4KWL4UKf/+R9q14QADgvcH7xaEJxVcfMdVe9BIWAK2kfLDljeHoVuyFkrNCKCy5fohVZpicB22xT8Ac3o/ZIuvZD63LJjBG+VJeQ6JzeNNITptwZxxMlmHByILUsX5Y6QP74esJfNqdn1emvb2wR6istdYKn8OX08Pg0YvjVS5pHITNcvI/AuazS4EeSqZPA6zOm9j+/VD8VlOcji2Oe/17Mrrep+m9RQk1u93Nv5IrSj59wHejvRqcW6esjKLvsaXssUP3gp3Lbt8pxf3Zu/3clhAcT3FWa3FH9FRlJX1xkOU3IIzOZz3yBpfxHE/PNbvdfWNCp5O0fwQ7FPQ6yXprWI5fllniJf/Rf44VwccSUk5z/q63sD0eb6Ai1OdD5TTpwR7YU0OdfuwPuq0+33yFOLeYbZifHbe7Izeej2Ffn+nSwh0vFH6ut7AU+8/TJddnuCHYA+8UkvVpVhb0/hpreh14+UfL8ET14u414nnDRp/Cv+1H+rDkvnsOy1ZUeep8XrdxPl7h574VC3Q8Q7X1vUGUs8vBcvIxve9zXnsu+p/H+31Wb5UO+RtVdMuxisrSsVn51UmVdabEmxaFhSW1/U2fr4fpq+LcxUBkMb7vegwWPfDtEb7LsUDwXT4ATYwfF7DC16u76Y97mrerMU08AMc5w+d1M3DRwsjoAAAAABJRU5ErkJggg==" alt="" />

通过上面的图我们可以看到,在进行并行测试时,运行时间为两秒!

返回目录

上一篇:多线程异步编程示例和实践-Thread和ThreadPool


下一篇:C#~异步编程再续~await与async引起的w3wp.exe崩溃-问题友好的解决