[C#学习]多线程编程——多线程基础

C#内置了对多线程编程的支持功能,所以相对于其他语言在多线程方面的问题,C#这里就已经最小化或者不复存在。在.Net FrameWork 4.0中,C#中添加了两个与多线程应用程序相关的重要功能:TPL(任务运行并行库)和PLINQ(并行LINQ)。两者都提供对并行编程的支持,都可以利用多处理器,也就是多核计算机。TPL简化了多线程应用程序的创建和管理,现在已经成为大多数情况下的推荐方式。

在学习以上两个新功能之前,先回顾一下基础。

几乎所有的面向对象方面的招聘的笔试或者面试都会问到的一个问题:进程和线程的区别?

今天在学习C#的多线程编程方面,把我的理解记录一下:

基于进程和基于线程是处理多任务的两种方式。进程本质上是一个正在执行的程序,因此 ,基于进程的多任务处理允许计算机同时运行两个或更多的程序,就比如你在浏览网页的同时还可以打开WORD。在基于进程的多任务处理中,程序是调度程序能够分配的最小代码单元。

线程则是可执行代码的可分派单元,在基于线程的多任务处理中,所有的进程至少有一个线程。也就是说,一个程序能够一次执行两个或者更多的操作。比如你打开一个文本编辑器,你可以在大于文件的同时格式化文本。

二者的不同可以这样概括:基于进程的多任务处理用来处理并发执行的程序,而基于线程的多任务处理用于处理同一个程序中并发执行的不同程序段。

下面简单介绍一下线程在代码中怎么创建和使用:

using System.Threading;  //支持多线程的类定义在该命名空间中

创建和启动线程的方式有很多,基础的如

Thread  thread=new Thread(obj.Function);  //obj.Function 代表线程的入口点,可以是类中的一个方法

thread.start(); //启动

thread.sleep(1000);//休眠,等待

thread.join();//等待直到线程结束,通常调用此方法是为了是程序在主线程中结束;

thread.Name="sss";  //设置线程的时间

if(thread.IsAlive);//判断线程是否结束

thread.IsBackground=true;  //设置为后台线程

今天太晚了,要休息了,就介绍这些最基础的吧,明天继续!

 

posted @ 2014-10-30 23:21  learingNew  阅读(193)  评论(0编辑  收藏  举报