【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()方法无需再去判断是否已经存在唯一的实例,而返回该实例,所以不会出现计数器类多次实例化的问题。
使用方法二: