欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#生成唯一不重復(fù)訂單號

 更新時間:2015年07月10日 10:45:45   投稿:hebedich  
本文給大家介紹的是使用C#生成唯一不重復(fù)訂單號的方法,主要用到了lock鎖,有需要的小伙伴可以參考下。

在弄電商類網(wǎng)站的時候,往往是根據(jù)年月日時分秒的格式生成訂單號(yyyyMMddHHmmss),為了解決并發(fā)性,就直接在生成訂單號的區(qū)域塊加上lock。

  下面,我們來簡單測試一下。

1.新建項(xiàng)目(控制臺應(yīng)用程序)

2.新建一個類:OrderIdHelper.cs

 /// <summary>
 /// 訂單助手
 /// </summary>
 class OrderIdHelper
 {
   private static readonly object Locker = new object();
   private static string _tempId = "";

   /// <summary>
   /// 生成訂單編號
   /// </summary>
   public static void GenerateId()
   {
     lock (Locker)  //lock 關(guān)鍵字可確保當(dāng)一個線程位于代碼的臨界區(qū)時,另一個線程不會進(jìn)入該臨界區(qū)。
     {
       var orderId = "Wen" + DateTime.Now.ToString("yyyyMMddHHmmss"); //年月日時分秒

       if (string.Equals(_tempId, orderId))
       {
         throw new Exception("訂單號重復(fù)!");
       }

       _tempId = orderId;

       Console.WriteLine(orderId);
     }
   }
 }

3.Program.cs

 class Program
 {
   static void Main(string[] args)
   {
     //創(chuàng)建包含兩個線程的數(shù)組
     var threads = new Thread[2]
     {
       new Thread(OrderIdHelper.GenerateId),
       new Thread(OrderIdHelper.GenerateId),
     };

     foreach (var thread in threads)
     {
       //線程啟動
       thread.Start();
     }

     Console.Read();
   }
 }

4.結(jié)果:=====OrderIdDemo_1.rar 點(diǎn)我下載=====

5.發(fā)現(xiàn)一個不錯的訂單號生成規(guī)則,稍作改動: 不重復(fù)訂單號生成規(guī)則(原網(wǎng)址)

/// <summary>
/// 訂單助手
/// </summary>
public class OrderHelper
{
  /// <summary>
  /// 防止創(chuàng)建類的實(shí)例
  /// </summary>
  private OrderHelper() { }

  private static readonly object Locker = new object();
  private static int _sn = 0;

  /// <summary>
  /// 生成訂單編號
  /// </summary>
  /// <returns></returns>
  public static string GenerateId()
  {
    lock (Locker)  //lock 關(guān)鍵字可確保當(dāng)一個線程位于代碼的臨界區(qū)時,另一個線程不會進(jìn)入該臨界區(qū)。
    {
      if (_sn == int.MaxValue)
      {
        _sn = 0;
      }
      else
      {
        _sn++;
      }
      
      Thread.Sleep(100);

      return "Wen" + DateTime.Now.ToString("yyyyMMddHHmmss")+ _sn.ToString().PadLeft(10, '0');
    }
  } 
}

 6.關(guān)于使用GUID的個人見解。

?、俨磺宄傻臅r間,不方便管理。

 ?、诠俜浇忉專篏UID 是一個 128 位整數(shù)(16 字節(jié)),可用于所有需要唯一標(biāo)識符的計算機(jī)和網(wǎng)絡(luò)。 此標(biāo)識符重復(fù)的可能性非常小。

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • C#控制臺實(shí)現(xiàn)飛行棋游戲

    C#控制臺實(shí)現(xiàn)飛行棋游戲

    這篇文章主要為大家詳細(xì)介紹了C#控制臺實(shí)現(xiàn)飛行棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C#執(zhí)行DOS命令的方法

    C#執(zhí)行DOS命令的方法

    這篇文章主要介紹了C#執(zhí)行DOS命令的方法,涉及針對進(jìn)程的調(diào)用以及系統(tǒng)DOS命令的使用,具有不錯的實(shí)用價值,需要的朋友可以參考下
    2014-11-11
  • C#并發(fā)編程入門教程之概述

    C#并發(fā)編程入門教程之概述

    這篇文章主要給大家介紹了關(guān)于C#并發(fā)編程之概述的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 詳解如何在C#中處理空值

    詳解如何在C#中處理空值

    在任何編程語言中開發(fā)應(yīng)用程序時,經(jīng)常會遇到空異?;蚩找卯惓?,那么下面讓我們探討一下在C#中處理空值的各種方法吧,需要的可以收藏下
    2023-07-07
  • 基于C#實(shí)現(xiàn)磁性吸附窗體

    基于C#實(shí)現(xiàn)磁性吸附窗體

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)磁性吸附窗體,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#執(zhí)行表達(dá)式樹(Expression Tree)的具體使用

    C#執(zhí)行表達(dá)式樹(Expression Tree)的具體使用

    本文將深入探討表達(dá)式樹的基本概念、創(chuàng)建方法、修改和刪除節(jié)點(diǎn)、查詢和遍歷技巧以及在C#中的應(yīng)用示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • C#接口在派生類和外部類中的調(diào)用方法示例

    C#接口在派生類和外部類中的調(diào)用方法示例

    這篇文章主要介紹了C#接口在派生類和外部類中的調(diào)用方法,結(jié)合實(shí)例形式分析了C#接口的定義與具體使用方法,需要的朋友可以參考下
    2017-02-02
  • 淺談C#各種數(shù)組直接的數(shù)據(jù)復(fù)制/轉(zhuǎn)換

    淺談C#各種數(shù)組直接的數(shù)據(jù)復(fù)制/轉(zhuǎn)換

    下面小編就為大家?guī)硪黄獪\談C#各種數(shù)組直接的數(shù)據(jù)復(fù)制/轉(zhuǎn)換。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能

    C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能

    這篇文章主要為大家詳細(xì)介紹了C#使用NPOI實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Unity3D使用陀螺儀控制節(jié)點(diǎn)旋轉(zhuǎn)

    Unity3D使用陀螺儀控制節(jié)點(diǎn)旋轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了Unity3D使用陀螺儀控制節(jié)點(diǎn)旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評論