`

java实现用单例模式返回一个线程安全的实例

阅读更多
直接上代码!
package thread;

/**
 * java实现用单例模式返回一个线程安全的实例
 * @author Administrator
 *
 */
public class GetSyncInstance {
	
	private static GetSyncInstance instance;
	private static int i;
	
	private static synchronized void initSyn(){
		if(instance==null)
			instance = new GetSyncInstance("123");
	}
	
	public static GetSyncInstance GetInstance(){
		if(instance==null){
			initSyn();
		}
		return instance;
	}
	
	public GetSyncInstance(){
	}
	public GetSyncInstance(String ss){
		i++;
		System.out.println("instance="+" "+i);
	}
	
	public static void main(String[] args) {
		//用两个线程同时调用测试,只返回:instance= 1
		Thread t = new th1();
		t.start();
		Thread t1 = new th1();
		t1.start();
	}
}
class th1 extends Thread{

	@Override
	public void run() {
		for(int i=0;i<10;i++){
			GetSyncInstance.GetInstance();
		}
	}
	
}
分享到:
评论

相关推荐

    使用Java单例模式实现一个简单的登录验证系统.txt

    然后使用单例模式来实现该类的实例化,保证在整个应用程序中只有一个LoginSystem对象。在login()方法中对用户的用户名和密码进行校验,并返回校验结果。在main()方法中演示了如何使用单例模式来创建LoginSystem对象...

    单例模式java代码

    编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时存在2个对象。...

    使用Java单例模式实现一个简单的日志记录器.txt

    这段代码实现了一个简单的日志记录器Logger,其中使用了Java的单例模式。在类的构造方法中,首先定义...这个简单的示例代码展示了如何使用Java单例模式来实现一个日志记录器的简单功能,方便了对日志数据的管理和记录。

    多例模式java实现

    单例模式的扩展及应用。 编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时...

    Objective C 单例模式设计源码

    顾名思义,单例模式的特点就是保证一个类仅有一个实例。因为这个模式只和一个类有关,没有类与类之间的关系,所有就不给出图示了。那么还是先说一下基本的定义。 单例模式(Singleton),保证一个类仅有一个实例,并...

    17-Java单例模式的学习笔记1

    第一次校验的时候没有同步锁,如果已经实例化了,直接返回即可,省下了同步锁要消耗的资源 第二次校验是因为第一次校验没有同步锁,所以多个线程都可能进入,同步块内二重

    JAVA 范例大全 光盘 资源

    实例31 单例模式(Singleton) 75 实例33 开车(简单工厂模式) 77 实例33 旅游(工厂方法模式) 79 实例34 花园布局(抽象工厂模式) 80 实例35 几何图形(适配器模式) 82 第6章 字符串 85 实例36 获取字符...

    JAVA Lock加锁实例

    (以下场景皆为单例模式下运行) lock.lock()的加锁方式,会使后续请求的线程堵塞等待。(方案A) lock.tryLock()的加锁方式,不会堵塞,会立即返回加锁成功与否。(方案AEX) lock.tryLock(1000, TimeUnit.SECONDS)...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 实例015 安装界面设计器 22 实例016 设计Windows系统的运行对话框 界面 23 实例017 设计计算器程序界面 26 实例018 设计关于进销存管理系统的界面 27 第2章 ...

    超级有影响力霸气的Java面试题大全文档

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    JAVA-SSH面试题

    struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。 单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。 struts...

    java面试题

    51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...

    java面试800题

    Q0058 一个Java抽象类声明了一个方法并会抛出一个异常,问继承这个抽象类的子类,实现了这个方法,这个方法声明是不是一定要抛出一模一样的异常,可不可以不抛,或者抛出的异常比抽象类的异常范围大,或者小?...

    javaee底层源码-DesignModels:C++设计模式

    3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理...

    二十三种设计模式【PDF版】

    所以很少存在简单重复的工作,加上Java 代码的精炼性和面向对象纯洁性(设计模式是 java 的灵魂),编程工作将变成一个让你时刻 体验创造快感的激动人心的过程. 为能和大家能共同探讨"设计模式",我将自己在学习中的心得...

Global site tag (gtag.js) - Google Analytics