技术开发 频道

Singleton设计模式的C#实现(下)


【IT168技术文档】

  以下为Main函数,本程序的测试入口:
using System; namespace csPattern.Singleton { public class RunMain { public RunMain() {} static public void Main(string[] args) { MutileThread.MutileClient myClient = new MutileThread.MutileClient(); myClient.ClientMain(); System.Console.ReadLine(); } } }
  执行结果如下:

  线程Thread 1报告: 当前counter为: 2

  线程Thread 1报告: 当前counter为: 4

  线程Thread 1报告: 当前counter为: 5

  线程Thread 1报告: 当前counter为: 6

  线程Thread 3报告: 当前counter为: 7

  线程Thread 3报告: 当前counter为: 8

  线程Thread 3报告: 当前counter为: 9

  线程Thread 3报告: 当前counter为: 10

  线程Thread 0报告: 当前counter为: 1

  线程Thread 0报告: 当前counter为: 11

  线程Thread 0报告: 当前counter为: 12

  线程Thread 0报告: 当前counter为: 13

  线程Thread 2报告: 当前counter为: 3

  线程Thread 2报告: 当前counter为: 14

  线程Thread 2报告: 当前counter为: 15

  线程Thread 2报告: 当前counter为: 16

  由于系统线程调度的不同,每次的执行结果也不同,但是最终结果一定是16。

  方法一中由于实例一开始就被创建,所以instance()方法无需再去判断是否已经存在唯一的实例,而返回该实例,所以不会出现计数器类多次实例化的问题。

  使用方法二:
0
相关文章