CLR线程池
WaitCallback 表示要在 ThreadPool 线程上执行的回调方法。 创建委托,方法是将回调方法传递给 WaitCallback 构造函数。 您的方法必须具有此处所显示的签名。
如果想使用线程池中的工作线程排队执行一个方法,可以使用ThreadPool.QueueUserWorkItem()方法。这个方法被重载的方法可以让你传递一个可选的object类型的自定义状态数据给waitCallBack委托实例
public class Program
{
//出现的问题:dish类与其他两类的对应关系
//多线程针对的是什么,共享那块怎么处理
static void Main(string[] args)
{
Console.WriteLine("-----------------------------");
// Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
WaitCallback callback = new WaitCallback(new printer().Print);
for (int i = ; i < ; i++)
{
ThreadPool.QueueUserWorkItem(callback,i);
}
Console.ReadLine();
} }
public class printer
{
public void Print(object obj)
{
lock (this)
{
if (Convert.ToInt32(obj) < )
{
Console.WriteLine(obj.ToString()+" 在等待");
Monitor.Wait(this);
Console.WriteLine(obj.ToString());
}
else
{
Monitor.PulseAll(this);
Console.WriteLine(obj.ToString());
}
} }
}
线程池的好处:
- 减少了线程创建、开始和停止的次数,提高了效率。
- 能够使我们将注意力放到业务逻辑上而不是多线程架构上。
然而,在某些特殊情况应优先使用手工线程管理。比如:
- 如果需要前台线程或设置优先级别,或者线程池中的线程总是后台线程,且它的优先级是默认的
- 如果需要有一个带有固定标志的线程便于退出、挂起或通过名字发现它
CLR线程池的更多相关文章
- 浅谈线程池(上):线程池的作用及CLR线程池
原文地址:http://blog.zhaojie.me/2009/07/thread-pool-1-the-goal-and-the-clr-thread-pool.html 线程池是一个重要的概念. ...
- 线程机制、CLR线程池以及应用程序域
最近在总结多线程.CLR线程池以及TPL编程实践,重读一遍CLR via C#,比刚上班的时候收获还是很大的.还得要多读书,读好书,同时要多总结,多实践,把技术研究透,使用好. 话不多说,直接上博文吧 ...
- C# 多线程学习系列三之CLR线程池系列之ThreadPool
一.CLR线程池 1.进程和CLR的关系一个进程可以只包含一个CLR,也可以包含多个CLR2.CLR和AppDomain的关系一个CLR可以包含多个AppDomain3.CLR和线程池的关系一个CLR ...
- 如何应用CLR线程池来管理多线程
class Program { static void Main(string[] args) { int intWorkerT ...
- MVC的HTTP请求处理过程(IIS应用程序池、CLR线程池)
主要内容 本文讲解的是:服务器接受Http Request请求之后,是如何进入.Net CLR,从而进一步操作的. 我们大家都知道,IIS必须先接受请求,然后才能有机会进入CLR,但对请求(reque ...
- CLR线程概览(下)
作者:施懿民链接:https://zhuanlan.zhihu.com/p/20866017来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 同步: 托管代码 托管代码可 ...
- 线程池ThreadPool的初探
一.线程池的适用范围 在日常使用多线程开发的时候,一般都构造一个Thread示例,然后调用Start使之执行.如果一个线程它大部分时间花费在等待某个事件响应的发生然后才予以响应:或者如果在一定期间内重 ...
- 浅谈线程池(中):独立线程池的作用及IO线程池
原文地址:http://blog.zhaojie.me/2009/07/thread-pool-2-dedicate-pool-and-io-pool.html 在上一篇文章中,我们简单讨论了线程池的 ...
- 线程池(C#)
转自:http://blog.sina.com.cn/s/blog_494305f30100ryw7.html 在这里你可以学到Microsoft研究CLR实现线程池的原理机制,从而更灵活的处理CLR ...
随机推荐
- Web之路笔记之一
简单说一句,现在开始准备面试前端的知识,每天完成相关的任务,记录一些点. 2014秋季学期Web2.0课程习题 <Lab1 - About Me Page> 目标是自己动手写一个粗略的包含 ...
- Migrating an ASP.NET MVC application to ADFS authentication
I recently built an ASP.NET application at work to help track internal use of our products. It's bee ...
- SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)
这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激! 视频播放类:(新建类Z_CL_MEDIA,点击基于 ...
- vs中部分快捷键
ctrl + r ctrl + r ctrl 按两次r修改变量名(修改被引用到的变量名),不同于ctrl + f(修改全部相同名字的) ctrl +r ctrl + m 先选中一部分da ...
- JavaScript之Array类型
1. 创建数组 var colors = new Array(); var colors = new Array(20); var colors = new Array("blue" ...
- python之萌新入门的第一天
新人的挑战一:配置环境变量及正确地使用工具. 配置环境好难,照着教程做很简单,但是确定环境配置成功好难. 一开始运行helloworld程序的文件时一直出现SyntaxError:invaild sy ...
- js语法重点
1:最新的ES6规范引入了新的数据类型Map:var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);m.get('Michael ...
- [原创]Win7、Win8、Win10始终以管理员身份运行程序。
在Win7.Win8.Win10系统中,以管理员身份运行程序很麻烦,一般有以下几种方式: 1.在可执行程序或快捷方式上右键,以管理员身份运行: 2.在可执行程序或快捷方式上右键->属性-> ...
- IO 相关配置参数
INNODB I/O相关配置 记录日志为顺序I/O,刷新日志到数据文件为随机操作.顺序操作性能快于随机IO. innodb_log_file_size innodb_log_files_in_grou ...
- Install Sublime Text 3
$ sudo add-apt-repository ppa:webupd8team/sublime-text-3 $ sudo apt-get update $ sudo apt-get instal ...