复习及总结--.Net线程篇(3)

不幸的发现,原来多线程的东西还有好多。

  不只是一个Thread就能把事情做完的,好吧,孤陋寡闻了

这里总结下  复习及总结--.Net线程篇(2)里的两个概念AppDomain和ThreadPool

AppDomain:作用是为了隔离程序集之间的线程,打个比方吧,

                     现在有100个人(线程)同时工作,有50个人(线程)不想干了,说要辞职,那么这样肯能会影响到另外的50个人,那么公司(操作系统)就使用AppDomain这个东西来隔离这50个不想做事的人

                     这就是AppDomain的作用

ThreadPool: 让频繁创建的线程有一个归属,不用每次都在用某个线程的时候都去创建,提高了性能

                    再打个比方,我们要链接数据库,这个时候就牵扯到了频繁的创建数据库链接,数据库链接数量,信息对应用程序来说是固定的,所以没必要再使用一次就创建一次,这样效率会很底下

                    同时,数据库链接并不是始终都在保持链接的,所以,MS就使用了一个叫链接池的概念,这里的线程池和连接池很类似

开始本篇的主题 Thread

    先介绍两个委托

     1,ParameterizedThreadStart

               该委托签名为   delegate void ParameterizedThreadStart(Object param),

              作用是给Thread的构造函数传入一个包含参数的方法签名

     2,ThreadStart

             该委托签名为   delegate void ThreadStart(),

             作用是给Thread构造函数传入一个不带参数且无返回值的方法签名

   Thread属性

         三个静态属性
            //  Thread.CurrentContext //获取当前线程的上下文
           //  Thread.CurrentPrincipal //获取当前线程的负责人
           //  Thread.CurrentThread //获取当前线程的引用
实例属性
            Thread t1 = new Thread(Main);
             //t1.ApartmentState   //设置单元状态,决定线程在单线程下执行还是在多线程下执行
             //t1.IsAlive  //在线程已启动并仍然活动的情况下返回True
            //t1.IsBackground//是否为后台线程,前后台的不同在于:它不必在调用它的进程结束前完成执行或被终止
            //t1.Name    //线程名称
            //t1.Priority   线程优先级
            //t1.ThreadState 返回线程的状态,默认情况是UnStarted
1 Thread.AllocateDataSlot();//在现有现存的线程上分配未命名的数据槽,数据槽是用来存放特定于线程的数据的本地内存尸体,使用该方法的数据槽将在线程到期时被释放
2             Thread.AllocateNamedDataSlot("ThreadName");//在所有现存的线程上分配命名的数据槽,命名的数据槽必须被显示的释放
3             Thread.FreeNamedDataSlot("ThreadName");//释放以前分配的命名数据槽
4             Thread.GetData(new LocalDataStoreSlot());//为当前域检索当前线程指定的数据槽中存储的对象
5             Thread.GetNamedDataSlot("ThreadName"); //检索指定的命名的数据槽
6 
7 
8             Thread.SetData(new LocalDataStoreSlot(), "|");//为此线程的当前域把指定的对象存放在当前运行的线程指定的数

其他方法:

   Sleep 当前线程休眠指定的时间

   Join 当指定的线程被执行完成,或者终止后继续调用线程

   Abord 终止前程

   Start 开始执行某个线程

以上是Thread类的基本介绍

接下来讲讨论一下线程锁的机制也就是Lock关键字

原文地址:https://www.cnblogs.com/anbylau2130/p/3458229.html