c# ConcurrentDictionary
using System.Collections.Concurrent;
internal class Program
{
static void Main(string[] args)
{
ConcurrentDictionary<string, RedisConnection> redisConnectionDic = new ConcurrentDictionary<string, RedisConnection>();
int redisConn =10;
//会多次创建
//Parallel.For(1, 10, i =>
//{
// redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(i); });
//});
//会多次创建
//redisConnectionDic.GetOrAdd(redisConn.ToString(), CreateRedisClient(1));
//redisConnectionDic.GetOrAdd(redisConn.ToString(), CreateRedisClient(2));
redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(1); });
redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(2); });
//for (int i = 0; i < 10; i++)
//{
// redisConnectionDic.GetOrAdd(redisConn.ToString(), redisConn => { return CreateRedisClient(i); });
//}
Console.WriteLine("Hello, World!");
Console.ReadLine();
}
public static RedisConnection CreateRedisClient(int cluster_id)
{
Console.WriteLine($"正在初始化 cluster_id={cluster_id} 的redis 连接");
Thread.Sleep(1000);
return new RedisConnection();
}
}
public class RedisConnection
{ }
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com