C#生成唯一的ID(适用于高并发下)
背景:七月份结婚了,跟着老公来了广州,刚入职的一家新公司差不多三个月了,还是一如既往的在做跟表单相关的一些东西,之前的那家公司,表单的ID是由数据库大佬直接写的函数,代码里直接调用就可以了,现在这家公司啥都要自己做,于是,记录一下高并发下生成ID的方法。
1.最开始的尝试是直接用random,当然这显示是不可行的,我自己也知道,这里贴上代码。
2.而后呢,又使用了时间戳加随机数的形式,这种在高并发的情况下还是有可能会生成相同的编号
var Id = DateTime.Now.ToString(“yyyyMMddHHmmssfff”)+GetRamdom(3);
3.最后上网查询,大概得到了这种解决办法,时间戳+累加数
在这里写的这段代码是,每秒生成的编号不会超过1000条
public class UIDHelper
{
private static readonly object Locker = new object();
private static int _sn=0;
public static string GenerateNo(string pre=’"")
{
lock(Locker) //lock关键字可确保当一个线程位于临界值时&#x