在C#中,可以使用关键字synchronized来实现线程同步,保证多个线程访问共享资源时的安全性。在C#中,synchronized关键字可以通过lock关键字来实现。在lock关键字的作用域内,只有一个线程可以访问共享资源,其他线程必须等待当前线程执行完毕才能访问。
下面是一个使用synchronized关键字实现线程同步的示例代码:
using System; using System.Threading; class Program { private static object lockObj = new object(); static void Main() { Thread t1 = new Thread(DoWork); Thread t2 = new Thread(DoWork); t1.Start(); t2.Start(); t1.Join(); t2.Join(); Console.WriteLine("All threads have finished."); } static void DoWork() { lock (lockObj) { for (int i = 0; i < 5; i++) { Console.WriteLine($"Thread {Thread.CurrentThread.ManagedThreadId} is working."); Thread.Sleep(100); } } } }
在上面的示例中,定义了一个静态对象lockObj作为锁对象,然后在DoWork方法中使用lock关键字对共享资源进行同步操作。这样可以确保多个线程访问共享资源时的安全性。