技术开发 频道

.NET线程同步的多种实现

  4、Lock

  Lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。(MSDN)

  Lock(关键字),在需要同步的线程中要确保访问的是同一关键字对象。

  上面代码的Lock实现

  class Program

  {

  
private static object LockObj=new object();

  static void Main(
string[] args)

  {

  Lock();

  Console.Read();

  }

  static void Lock()

  {

  
for (int i = 0; i < 4; i++)

  {

  Thread tr
= new Thread(doing);

  tr.Start(i);

  }

  }

  static void doing(
object threadName)

  {

  lock (LockObj)

  {

  
int i = 0;

  
while (i < 10)

  {

  Thread.Sleep(
100);

  Console.WriteLine(threadName
+ " " + i++);

  }

  Console.WriteLine(threadName
+ "over ");

  }

  }

  }

 

 

0
相关文章