码迷,mamicode.com
首页 > Windows程序 > 详细

c#实现分组服务器,单一无重复生成ID

时间:2015-03-10 18:42:05      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             List<Thread> threads = new List<Thread>();
 6             getID();
 7             Console.WriteLine("重复次数:" + ccount);
 8             Console.ReadLine();
 9         }
10 
11         public static void getID()
12         {
13             for (int j = 0; j < 20; j++)
14             {
15                 for (int i = 0; i < 99999; i++)
16                 {
17                     // GetDate();
18                     Console.WriteLine(GetDate());
19                 }
20                 Thread.Sleep(980);
21             }
22         }
23 
24         static int serverID = 99;
25         static ulong ID = 1;
26         static HashSet<string> longset = new HashSet<string>();
27         static int ccount = 0;
28 
29         public static string GetDate()
30         {
31             lock (typeof(ulong))
32             {
33                 if (ID + 1 > 99999)
34                 {
35                     ID = 0;
36                 }
37                 ID++;
38                 string _ulong = serverID + "" + System.DateTime.Now.ToString("yyMMddHHmmss") + ("" + ID).PadLeft(5, 0);
39                 if (longset.Contains(_ulong))
40                 {
41                     ccount++;
42                 }
43                 longset.Add(_ulong);
44                 return _ulong;
45             }
46         }
47     }

该程序用于生成的ID太强规则可言的,可实现分布式生成ID,在合并数据是无重复ID~!目前支持99组服务器同时运行,每秒9999个ID生成~!

 

c#实现分组服务器,单一无重复生成ID

标签:

原文地址:http://www.cnblogs.com/ty408/p/4326419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!