在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關鍵字對共享資源進行同步操作。這樣可以確保多個線程訪問共享資源時的安全性。