在C#中,值类型的数据不会产生线程不安全。这是因为值类型的数据在内存中是按值存储的,
每个线程都有自己的栈空间,因此不会出现多个线程同时访问同一个内存地址的情况。
而引用类型的数据则是按引用存储的,多个线程可能会同时访问同一个内存地址,从而导致线程不安全的问题。为了避免这种情况,
可以使用锁或其他同步机制来保证线程安全。
Random.Shared是C# 6.0中引入的一个静态属性,它返回一个线程安全的Random实例。
它的实现原理是使用ThreadLocal<T>类型来创建一个Random实例,每个线程都有自己的Random实例,
避免了多线程竞争的问题。同时,Random.Shared使用了一个种子生成器来生成种子,
这个种子生成器是基于时间和进程ID的,保证了每个Random实例的种子都是不同的。
标签:记录,c#,Random,生成器,安全,实例,线程,种子,中线 From: https://www.cnblogs.com/Insist-Y/p/17393588.html