本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wdswei/archive/2009/09/27/4597930.aspx
摘要
深度研究Microsoft .NET提供的线程池,揭示什么情况下你需要用线程池以及 .NET框架下的线程池是如何实现的,并告诉你如何去使用线程池。
内容
.NET中的线程池
线程池中执行的函数
使用定时器
同步对象的执行
异步I/O操作
监视线程池
死锁
有关安全性
结束
如果你有在任何编程语言下的多线程编程经验的话,你肯定已经非常熟悉一些典型的范例。通常,多线程编程与基于用户界面的应用联系在一起,它们需要在不影响终端用户的情况下,执行一些耗时的操作。取出任何一本参考书,打开有关线程这一章:你能找到一个能在你的用户界面中并行执行数学运算的多线程示例吗?
我的目的不是让你扔掉你的书,不要这样做!多线程编程技术使基于用户界面的应用更完美。实际上, Microsoft .NET框架支持在任何语言编写的窗口下应用多线程编程技术,允许开发人员设计非常丰富的界面,提供给终端用户一个更好的体验。但是,多线程编程技术不仅仅是为了用户界面的应用,在没有任何用户界面的应用中,一样会出现多个执行流的情况。
我们用一个“硬件商店”的客户/服务器应用系统作为例子。客户端是收银机,服务端是运行在仓库里一台独立的机器上的应用系统。你可以想象一下,服务器没有任何的用户界面,如果不用多线程技术你将如何去实现?
服务端通过通道(http, sockets, files 等等)接收来自客户端的请求并处理它们,然后发送一个应答到客户端。图1显示了它是如何运作的。