Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 线程同步

作者:Alexandr嫁衣°   发布日期:2025-11-20   浏览:75

using System;
using System.Threading;

class Program
{
    // 定义一个共享资源
    private static int sharedResource = 0;

    // 定义一个互斥锁对象
    private static readonly object lockObject = new object();

    static void Main(string[] args)
    {
        // 创建两个线程来访问共享资源
        Thread thread1 = new Thread(IncrementSharedResource);
        Thread thread2 = new Thread(IncrementSharedResource);

        // 启动线程
        thread1.Start();
        thread2.Start();

        // 等待线程结束
        thread1.Join();
        thread2.Join();

        // 输出最终的共享资源值
        Console.WriteLine("Final value of shared resource: " + sharedResource);
    }

    static void IncrementSharedResource()
    {
        for (int i = 0; i < 10000; i++)
        {
            // 使用lock关键字确保同一时间只有一个线程可以访问共享资源
            lock (lockObject)
            {
                sharedResource++;
            }
        }
    }
}

解释说明:

  1. 共享资源sharedResource 是一个静态整数变量,多个线程将同时对其进行递增操作。
  2. 互斥锁对象lockObject 是一个静态对象,用于在多个线程之间同步对共享资源的访问。
  3. 线程创建与启动:我们创建了两个线程 thread1thread2,它们都调用同一个方法 IncrementSharedResource 来递增共享资源。
  4. 线程同步:使用 lock 关键字来确保在同一时刻只有一个线程可以执行 sharedResource++ 操作,从而避免竞态条件(race condition)。
  5. 线程等待:通过 Join 方法确保主线程等待子线程完成后再继续执行。
  6. 输出结果:最后输出共享资源的最终值,确保其正确性。

上一篇:c#实例

下一篇:c# 代码混淆

大家都在看

c# 二进制

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

c#网络编程

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站