📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Collections;
namespace _1
{
class LoadBalancer
{
private static LoadBalancer Balancer;
private ArrayList ArrayList_Server = new ArrayList();
private Random random = new Random();
protected LoadBalancer()
{
ArrayList_Server.Add("服务器I");
ArrayList_Server.Add("服务器II");
ArrayList_Server.Add("服务器III");
ArrayList_Server.Add("服务器IV");
ArrayList_Server.Add("服务器V");
}
public static LoadBalancer GetLoadBalancer()
{
if (Balancer == null)
{
Mutex mutex = new Mutex();
mutex.WaitOne();
if (Balancer == null)
Balancer = new LoadBalancer();
mutex.Close();
}
return Balancer;
}
public string Server
{
get
{
int r = random.Next(ArrayList_Server.Count);
return ArrayList_Server[r].ToString();
}
}
}
/**/
/// <summary>
/// SingletonApp test
/// </summary>
///
public class SingletonApp
{
public static void Main(string[] args)
{
LoadBalancer b1 = LoadBalancer.GetLoadBalancer();
LoadBalancer b2 = LoadBalancer.GetLoadBalancer();
LoadBalancer b3 = LoadBalancer.GetLoadBalancer();
LoadBalancer b4 = LoadBalancer.GetLoadBalancer();
// Same instance?
if ((b1 == b2) && (b2 == b3) && (b3 == b4))
Console.WriteLine("同步运行相同的实例对象");
// Do the load balancing
Console.WriteLine(b1.Server);
Console.WriteLine(b2.Server);
Console.WriteLine(b3.Server);
Console.WriteLine(b4.Server);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -