public static void 运行() { //唯一的实例 任务 task = 任务.创建任务(); task.开启(); }
//定义全局访问点 public static 任务 创建任务() { //第一个线程运行,此时会对locker对象“加锁” //第二个线程运行,首先检测locker对象为“加锁”状态,该线程就会挂起等待第一个线程解锁 //lock语句运行完后,会对该对象“解锁” //双重锁定只需要一句话判断就可以了 if (这个任务存在 == null) { lock (这个任务存在) { if (唯一的本任务 == null) { 唯一的本任务 = new 任务(); } } } return(唯一的本任务); }