LZY'Blog

记录LZY的生活、行程!

使用Mutex类实现线程同步

  当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex类是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥的第二个线程将被挂起,直到第一个线程释放该互斥体。Mutex类与监视器类似,它防止多个线程在某一时间同时执行某个代码块,然而与监视器不同的是,Mutex类可以用来使跨进程的线程同步。

使用Monitor类实现线程同步

  Monitor类提供了同步对象的访问机制,它通过向单个线程授予对象锁来控制对对象的访问,对象锁提供限制访问代码块(通常称为临界区)的能力。当一个线程拥有对象锁时,其他任何线程都不能获取该锁。

使用C#中的lock关键字实现线程同步

  lock关键字可以用来确保代码块完整运行,而不会被其他线程中断,它是通过在代码块运行期间为给定对象获取互斥锁来实现的。

线程的优先级

  线程的优先级指定一个线程相对于另一个线程的相对优先级。每个线程都有一个分配的优先级。在公共语言运行库内创建的线程最初被分配为Normal优先级,而在公共语言运行库外创建的线程,在进入公共语言运行库时将保留其先前的优先级。

使用Thread类的Join方法终止线程

  Join方法用来阻止调用线程,直到某个线程终止时为止。它有3种重载形式,下面分别进行介绍。

使用Thread类的Abort方法终止线程

  Abort方法用来终止线程,它有两种重载形式,下面分别进行介绍。

Thread类的Sleep方法实现线程休眠

  线程休眠主要通过Thread类的Sleep方法实现,该方法用来将当前线程阻止指定的时间,它有两种重载形式,下面分别进行介绍。

线程的挂起与恢复

  线程的挂起与恢复分别可以通过调用Thread类中的Suspend方法和Resume方法实现,下面对这两个方法进行详细介绍。

线程的创建

  创建一个线程非常简单,只需将其声明并为其提供线程起始点处的方法委托即可。创建新的线程时,需要使用Thread类,该类具有接受一个ThreadStart委托或ParameterizedThreadStart委托的构造函数,该委托包装了调用Start方法时由新线程调用的方法。创建了Thread类的对象之后,线程对象已存在并已配置,但并未创建实际的线程,这时,只有在调用Start方法后,才会创建实际的线程。

Thread类的常用属性、方法及说明

  Thread类位于System.Threading命名空间下,System.Threading命名空间提供一些可以进行多线程编程的类和接口。除同步线程活动和访问数据的类(Mutex、Monitor、Interlocked和AutoResetEvent等)外,该命名空间还包含一个ThreadPool类(它允许用户使用系统提供的线程池)和一个Timer类(它在线程池的线程上执行回调方法)。

分页:[«]1[2][3][4][5][6][7][8][9][10][11][12][13][14][15][»]

Powered By Z-Blog 1.8 Walle Build 100427 |

Copyright 2009-2012 LZY'Blog. | ICP:蜀ICP备05027543号