阅读量:0
在C#中,没有像Java那样的synchronized
关键字
以下是一个简单的示例,展示了如何在C#中使用lock
语句:
using System; using System.Threading; class Program { private static readonly object _lockObject = new object(); public static void Main() { Thread thread1 = new Thread(DoWork); Thread thread2 = new Thread(DoWork); thread1.Start(); thread2.Start(); thread1.Join(); thread2.Join(); Console.WriteLine("Finished."); } private static void DoWork() { lock (_lockObject) { for (int i = 0; i < 5; i++) { Console.WriteLine($"Thread {Thread.CurrentThread.ManagedThreadId} is working..."); Thread.Sleep(1000); } } } }
在这个示例中,我们创建了两个线程,它们都调用DoWork
方法。DoWork
方法中的lock
语句确保同一时间只有一个线程可以访问该代码块。这样可以防止多个线程同时访问共享资源(在本例中为控制台),从而避免潜在的数据不一致和竞争条件。