C#网络编程高级篇之网页游戏辅助程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 多线程编程技术

网络应用程序一般都会或多或少地使用到线程,甚至可以说,一个功能稍微强大的网络应用程序总会在其中开出或多或少的线程,如果应用程序中开出的线程数目大于两个,那么就可以把这个程序称为多线程应用程序。

为什么网络应用程序总会和线程交缠在一起呢?这是因为网络应用程序在执行时,会遇到很多意想不到的问题,其中最常见的是网络阻塞和网络等待。程序在处理这些问题时往往需要花费很多的时间,如果不使用线程,则程序在执行时就会表现出如运行速度慢,执行时间长,容易出现错误,反应迟钝等问题。而如果把这些可能造成大量占用程序执行时间的过程放在线程中处理,往往能够大大提高应用程序的运行效率和性能,以及获得更优良的可伸缩性。那么这是否就意味着应该在网络应用程序中广泛地使用线程呢?情况并非如此,线程其实是一把双刃剑,如果不分场合,在不需要使用的地方强行使用就可能会产生许多程序垃圾,或者在程序结束后,由于没有能够销毁创建的进程而导致应用程序挂起等问题。所以如果程序的代码运行足够快,那还是别使用线程或多线程。

本章介绍Windows下的多线程编程技术及其执行原理和机制,应用大量的示例和程序讲解进程、线程和线程池的概念,希望读者可以尽快掌握多线程编程技术。