首页 > 代码库 > 线程锁

线程锁

C#

 1  class Program
 2     {
 3         static object locker = new object();//创建锁
 4         public static int money = 0;//捐款总数
 5         static void Main(string[] args)
 6         {
 7             Thread t1 = new Thread(write);//创建一个新的线程t1(捐款人)
 8             Thread t2 = new Thread(write);
 9             t1.Start();
10             t2.Start();
11 
12             Console.ReadLine();
13         }
14 
15         private static void write()
16         {         
17             while(true)
18             {
19                 //掏钱,咒骂,排队等捐款人可以同时进行的事
20                 lock (locker)//往捐款箱塞钱时,加锁。同一时刻只有一个人可以塞钱。
21                 {
22                     money += 100;//每人捐款100
23                     Console.WriteLine("有人正在投币,后面的请等待。。。");
24                     Thread.Sleep(3000);
25                     Console.WriteLine("目前共募集"+money+"元\n");
26                 }
27                 //伤心、继续工作、回家、挨老婆打等可以并发的事          
28             }      
29         }
30     }

 

线程锁