你的位置:首页 > 软件开发 > ASP.net > .NET 实现并行的几种方式(一)

.NET 实现并行的几种方式(一)

发布时间:2016-07-24 14:00:20
好久没有更新了,今天来一篇,算是《同步与异步》系列的开篇吧,加油,坚持下去(PS:越来越懒了)。 一、Thread 利用Thread 可以直接创建和控制线程,在我的认知里它是最古老的技术了。因为out了、所以不再写例子了。二、ThreadPool由于线程的创建和销毁需要耗 ...

好久没有更新了,今天来一篇,算是《同步与异步》系列的开篇吧,加油,坚持下去(PS:越来越懒了)。

 

一、Thread 

利用Thread 可以直接创建和控制get='_blank'>线程,在我的认知里它是最古老的技术了。因为out了、所以不再写例子了。

二、ThreadPool

由于线程的创建和销毁需要耗费大量的资源,为了提过性能、引入了线程池、即ThreadPool,ThreadPool 可隐式完成线程的创建和分配管理工作。

以下是来自MSDN的几句备注:

  线程池根据需要提供新的工作线程或 I/O 完成线程,直到其达到每个类别的最小值。 当达到最小值时,线程池可以在该类别中创建更多线程或等待某些任务完成。 从 .NET Framework 4 开始,线程池会创建和销毁工作线程以优化吞吐量,吞吐量定义为单位时间内完成的任务数。 线程过少时可能无法更好地利用可用资源,但线程过多时又可能会加剧资源的争用情况。

 直接应用 ThreadPool时、有两种应用场景:

1、将需要异步执行的方法、排入队列,当有可用线程时执行被排入队列的方法

      // 该应用场景下 ThreadPool 提供如下两种形式的重载方法      // public static bool QueueUserWorkItem(WaitCallback callBack);      // public static bool QueueUserWorkItem(WaitCallback callBack, object state);      // WaitCallback 为 delegate, 一个object类型的入参,没有返回值。      // public delegate void WaitCallback(object state);      base.SetTip(nameof(ThreadPool.QueueUserWorkItem));      ThreadPool.QueueUserWorkItem((state) =>      {        this.SetTip("等待一秒");        Thread.Sleep(1000);        this.SetTip("任务执行完毕");      });

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:.NET 实现并行的几种方式(一)

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。