c#中synchronized的用法是什么

c#
1169
2024/5/29 14:36:11
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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关键字对共享资源进行同步操作。这样可以确保多个线程访问共享资源时的安全性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: C#使用.NET Framework的安全性如何保障