Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54023
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2020-07-22 17:26
个人简介

blender https://www.blender-3d.cn/ blender3D模型库

文章分类

全部博文(11)

文章存档

2020年(11)

我的朋友

分类: 架构设计与优化

2020-08-09 16:29:46

最近在工作的时候发生了一些多执行续配合CONSUL的问题
解了以后发现singleton的重要


点击(此处)折叠或打开

  1. static void Main(string[] args)
  2.         {

  3.             Task.Run(() => Console.WriteLine(ConfigStore.Amigo.CategoryIDs));
  4.             Task.Run(() => Console.WriteLine(ConfigStore.Common.ApiPath2));
  5.             Task.Run(() => Console.WriteLine(ConfigStore.Common.ApiPathByB2B2));
  6.             Task.Run(() => Console.WriteLine(ConfigStore.Common.AuthAPIName));
  7.             Task.Run(() => Console.WriteLine(ConfigStore.Common.CreateOrderToken));
  8.             Task.Run(() => Console.WriteLine(ConfigStore.Common.JWTSecret));
  9.             Task.Run(() => Console.WriteLine(ConfigStore.Common.LdapPath));
  10.             Task.Run(() => Console.WriteLine(ConfigStore.Common.IsTestCase));
  11.             Console.Read();
  12.     }

以这段CODE来模拟同时间呼叫 原本的写法在建立的时候是这样做


点击(此处)折叠或打开

  1. Console.WriteLine("中間");
  2.                     if (signalled = mutex.WaitOne(2000))
  3.                     {
  4.                         Console.WriteLine("裡面");
  5.                         if (instance == null)
  6.                         {
  7.                             Console.WriteLine("很裡面");
  8.                             instance = new ConsulConfigStore();
  9.                         }
  10.                     }

发生了两秒过去了会让NULL的物件继续往前走
所以改回了这样的写法

点击(此处)折叠或打开

  1. Console.WriteLine("中間");
  2.                     if (instance == null)
  3.                     {
  4.                         lock (o)
  5.                         {
  6.                             Console.WriteLine("裡面");
  7.                             if (instance == null)
  8.                             {
  9.                                 Console.WriteLine("很裡面");
  10.                                 instance = new ConsulConfigStore();
  11.                             }
  12.                         }

  13.                     }
回归用Lock搞定
纪录纪录

阅读(546) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~