线程安全

多个人(多个线程)同时改同一个数据,不会出错、不会算错,就叫线程安全。
为什么会不安全?
多个线程同时抢着修改一个变量
你改一半我也改,数据就乱了、算错了
这就叫 线程不安全
线程安全的作用?
防止多线程同时操作数据,导致结果错误、数据混乱。

最简单的解决办法:lock(锁)
lock = 给数据上一把锁
同一时间,只允许一个线程修改!

——————————————————————————————————————————————————————————————————————

using System;
using System.Threading.Tasks;

class Program
{
static int count = 0;
static readonly object _lock = new object();

static void Main()
{
Parallel.For(0, 1000, i => {
lock (_lock) count++; // 加锁 = 线程安全
});
Console.WriteLine(count); // 永远输出 1000
}
}

————————————————————————————————————————————————————————————————————————

static int count = 0;
共享数字,多线程都会改它
static readonly object _lock = new object();
一把锁,用来保护数据
Parallel.For
1000 个线程同时执行
lock (_lock)
上锁!
同一时间只能有一个线程执行 count++
Console.WriteLine(count)
永远输出 1000(正确结果)

posted @ 2026-04-11 23:59  菜鸟的奋斗军  阅读(9)  评论(0)    收藏  举报