C#中Thread与ThreadPool的比较
最近同事在编写一个基于UPD RTP协议的通信软件,在处理接收Listen时,发现了一个问题到底是用Thread还是ThreadPool呢?
我看同事的问题比较有典型性,还是做以整理培训一下吧
Thread类,一次使用一个线程来创建删除线程,这种方式代价比较大(主要是创建和消毁过程,操作系统付出的代价)而ThreadPool
的出现主要是解决这个问题,将线程池化,可以重用已有的线程,使用完线程后,线程就会返回线程池,供以后使用。ThreadPool有25个
可用的线程(每个处理器)。
ThreadPool类应用场景:
1.以简单的方式创建和删除线程;
2.应用程序主线程的性能要优先考虑;
Thread类的应用场景:
1.要控制线程的优先级;
2.使用的线程周期比较长;
3.希望对线程有更多的管理维护。
C#中Thread与ThreadPool的比较的更多相关文章
- Thread and ThreadPool
C#中Thread与ThreadPool的比较 Thread类,一次使用一个线程,来创建和删除线程.这种方式建立和删除线程是很昂贵的(cpu密集型). Threadpool类 对于大多数的情况下是使用 ...
- 多线程异步编程示例和实践-Thread和ThreadPool
说到多线程异步编程,总会说起Thread.ThreadPool.Task.TPL这一系列的技术.总结整理了一版编程示例和实践,分享给大家. 先从Thread和ThreadPool说起: 1. 创建并启 ...
- 线程(Thread,ThreadPool)、Task、Parallel
线程(Thread.ThreadPool) 线程的定义我想大家都有所了解,这里我就不再复述了.我这里主要介绍.NET Framework中的线程(Thread.ThreadPool). .NET Fr ...
- Thread与ThreadPool的内存之战
Thread与ThreadPool使用的时候在内存里对象是如何分布的呢? 今天我们就从内存堆的角度分析下两者. 先上小白鼠代码: static void Main(string[] args) ...
- NET 异步多线程,THREAD,THREADPOOL,TASK,PARALLEL
.NET 异步多线程,THREAD,THREADPOOL,TASK,PARALLEL,异常处理,线程取消 今天记录一下异步多线程的进阶历史,以及简单的使用方法 主要还是以Task,Parallel为主 ...
- C#多线程编程介绍——使用thread、threadpool、timer
C#多线程编程介绍——使用thread.threadpool.timer 在system.threading 命名空间提供一些使得能进行多线程编程的类和接口,其中线程的创建有以下三种方法:thread ...
- Thread和ThreadPool
Thread和ThreadPool 说到多线程异步编程,总会说起Thread.ThreadPool.Task.TPL这一系列的技术.总结整理了一版编程示例和实践,分享给大家. 先从Thread和Thr ...
- Thread、ThreadPool、Task、Parallel、Async和Await基本用法、区别以及弊端
多线程的操作在程序中也是比较常见的,比如开启一个线程执行一些比较耗时的操作(IO操作),而主线程继续执行当前操作,不会造成主线程阻塞.线程又分为前台线程和后台线程,区别是:整个程序必须要运行完前台线程 ...
- C#中 Thread,Task,Async/Await 异步编程
什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调 ...
随机推荐
- stopPropagation, preventDefault 和 return false 的区别
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagati ...
- OSChina码云试用
首先在码云申请账户. 从 http://git-scm.com/download 下载window版的客户端.下载好,一步一步安装即可. $git config --global user.name ...
- (十二)select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset ...
- 利用eclips创建一个maven项目
最近在写新项目,由于以前没有用过Maven,所以在创建Maven 项目的过程中遇到了很多问题...现在将整个创建过程给记录下来,方便查看 创建maven项目 创建完成项目后配置maven项目 修改we ...
- python操作csv和excel文件
1.操作csv文件 1).读取文件 import csv f=open("test.csv",'r') t_text=csv.reader(f) for t,i in t_text ...
- 自定义view--实现滑动
1.重写 onInterceptTouchEvent() 拦截触摸事件 是由父控件向子控件传递 默认返回false 返回true,事件被当前的viewGroup进行处理,Touch事件不向下(子控件) ...
- .net(C#)在vs2010版本下的MVC如何才能运行静态页面(html)
正如,我上篇写的那样,那是在测试下,我所实现的方法,但是作为WEB项目,终究要发布的,故我把发布和切换在这说一下. 据我实测,我在按照我上篇改了Views下的Webconfig文件后,在解决方案下建了 ...
- Dubai Princess and Prince!
萨拉玛公主,生于1999年 哈曼丹王子 玛丽亚姆公主,出生于1991年
- Oracle ORA-12154: TNS: 无法解析指定的连接标识符”错误
主要原因: 1.监听服务没有起起来.windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务. 2.database ...
- O2O、C2C、B2B、B2C的区别
一.O2O.C2C.B2B.B2C的区别在哪里? o2o 是 online to offline 分为四种运营模式 1.online to offline 是线上交易到线下消费体验 2.offline ...