C#中线程的学习

来源:互联网 发布:python源码剖析笔记 编辑:程序博客网 时间:2024/05/16 18:01

        进程是操作系统中作为资源拥有的基本单位。线程作为系统调度和分派的基本单位。一个程序在运行时大多都只开辟一个进程,一个进程可以包含有一个或多个线程。线程是进程中的基本执行流,每个线程都有自己专属的寄存器(程序计数器,栈指针等),共享进程中的资源,不同的线程可以执行同样的代码。

        线程的引入显著提高了系统的并发力度。在同一进程中,线程的切换不会引发进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,将会引发进程的切换。而进程切换消耗cpu的资源远远的大于线程的切换。

       Thread类提供了创建并控制线程,设置其优先及并获得其状.态的方法。在使用该类是需要引用System.Threading命名空间。下面我们创建一个简单的线程:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace 多线程
{
    public class ThreadSimple
    {
        void TreadList()
        {
            Thread thread = new Thread(test);
        }

        private void test()
        {
        }
    }
}

在Thread类的定义中我们可以看到,该类包含有4个重载的构造函数。而传入 的参数是一个ThreadStart委托。由于VS的简化,我们可以直接写方法名。

现在我们有了一个线程,但是我们还没有启动它,怎样启动它呢?

我们可以根据所学的英语进行猜想线程启动的方法,如start或者open,当然这里是start

我们可以在Thread thread = new Thread(test);后面添加一句thread.Start();来启动我们的线程.

 

在Thread这个类以对象的方式提供了一些必要的实例成员,其中下面这些是比较常用的:

1.  IsAlive:判断线程是否处于活动状态

2.  Name:线程的名称

3.  Priority: ThreadPriority枚举类型,代表程序的优先级

4.  ThreadState: ThreadState枚举类型,代表线程的状态。

 

 

 

 

 

 

 

 

原创粉丝点击