首页 > 学院 > 开发设计 > 正文

设计模式-单例模式

2019-11-11 01:18:01
字体:
来源:转载
供稿:网友

这是用的最多的一种设计模式就不多说了,这里注意一下多线程环境下的同步问题

java实现代码:

package com.liu.pattern5;import java.util.concurrent.locks.ReentrantLock;public class Single {	PRivate static Single single;		private static ReentrantLock lock = new ReentrantLock();		public static Single getInstance(){				lock.lock();		try{						if(single==null){				single = new Single();						}						return single;		}finally{			lock.unlock();					}			}		public static void main(String[] args) {		// TODO Auto-generated method stub		Thread t1 = new MyThread();		Thread t2 = new MyThread();		Thread t3 = new MyThread();		t1.start();		t2.start();		t3.start();	}}class MyThread extends Thread{	public void run(){				Single s = Single.getInstance();			}}

 

c#实现代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;namespace com.liu.pattern5{    class Single    {        private static Single single;        private static Object _lock = new Object();        public static Single GetInstance()        {            lock (_lock)            {                if (single == null) {                    single = new Single();                }                return single;            }        }        public static void Run(){            System.Console.WriteLine(Thread.CurrentThread.Name);            Single.GetInstance();        }        static void Main(string[] args)        {            Thread t1 = new Thread(new ThreadStart(Run));            Thread t2 = new Thread(new ThreadStart(Run));            t1.Name = "t1";            t2.Name = "t2";            t1.Start();            t2.Start();            t1.Join();            t2.Join();            System.Console.ReadKey();        }    }}

 


上一篇:Supermarket

下一篇:IDEA常用设置

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表