黑马程序员---.NET高级之多线程的实现


    在说线程之前首先要知道什么是进程,进程是操作系统的最基本的,也是最重要的概念之一。简单来说一个进程就是你正在执行的应用程序,一个进程里面包括一个或多个线程。系统中的一个进程肯定对应着一个应用程序,但同一个应用程序可以有多个进程。所以我们要清楚,进程和程序是相关联的,但并不是同一个概念。即应用程序被加载到内存中后叫进程。  

    下面说一下线程,线程简单来说就是程序中的一个执行流,每个线程都有自己的专有寄存器同时代码区是共享的,即不同的线程可以执行同样的函数和访问同样的变量。 即进程被CPU处理时叫线程。

    那么多线程又是怎么回事呢?多线程简单的说就是在一个程序中包含多个程序流,可以把一个复杂的操作分成多个细节操作,这些细节操作可以并行的执行,从而节约时间和提高效率。使用多线程,可以:

•让计算机"同时"做多件事情,节约时间。
•后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况。
•可以让一个程序“同时”处理多个事情。
•计算机cpu大部分时间处于空闲状态,浪费了cpu资源。
那么.NET总如何创建一个线程呢?产生一个线程的4步骤:
    编写产生线程所要执行的方法
    引用System.Threading命名空间
    实例化Thread类,并传入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)
    调用Thread实例的Start方法,标记该线程可以被CPU执行了,但具体执行时间由CPU决定。 
通过以上步骤,我们就能创建一个线程出来,这里重要用到了Thread类,而Thread类又有如下重要成员:
  Start()启动线程
     Abort()终止线程
     Sleep() 静态方法,可以使当前线程停止一段时间运行
     Name线程名
     Thread.CurrentThread获得当前的线程引用

    下面就来通过代码创建一个线程:

线程肯定也是要执行一段代码的。所以要产生一个线程,必须先为该线程写一个方法,这个方法中的代码就是该线程运行所要执行的代码。

private void  CountNum()
{
int num=0;
for(int i=0;i<=10000;i++)
{
num++;
}
}

线程启动时,调用传过来的委托,委托就会执行相应的方法,实现线程执行方法

//创建线程对象(传入委托对象),也可以直接传方法             
Thread thread = new Thread(CountNum);

thread.Name = "t1";
//将线程标记为可以开始了
thread.Start();

这样就创建了一个线程,当我们需要并行的执行多个任务又不想让程序处于假死状态的时候就义创建多个线程,同时执行了。



posted @ 2012-02-29 22:45  wrzj5678  阅读(171)  评论(0编辑  收藏  举报