温馨提示×

如何在C#中使用synchronized关键字

c#
小樊
86
2024-09-08 23:38:08
栏目: 编程语言

在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语句确保同一时间只有一个线程可以访问该代码块。这样可以防止多个线程同时访问共享资源(在本例中为控制台),从而避免潜在的数据不一致和竞争条件。

0