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 }