1、单例设计模式的优缺点 优点: 1):只创建一个实例,就可以到处使用,加快创建实体的效率 缺点: 1):如果使用的频率比较低,实例会一直占据着内存空间,会造成资源浪费 2):可能会出现线程安全问题2、单例设计模式的两种定法(饿汉、懒汉) 饿汉方法写法:(可能会造成资源浪费,...
分类:
编程语言 时间:
2015-05-23 16:49:54
阅读次数:
191
在上一篇博客里讲解了JAVA的线程的内存模型,见:JAVA并发编程2_线程安全&内存模型,接着上一篇提到的问题解决多线程共享资源的情况下的线程安全问题。
不安全线程分析
public class Test implements Runnable {
private int i = 0;
private int getNext() {
return i++;
}
@Overri...
分类:
编程语言 时间:
2015-05-20 09:44:58
阅读次数:
142
Java虚拟机内存模型了解Java虚拟机的内存模型,有助于我们明白为什么会发生线程安全问题.上面这幅图是的书中截图.线程共享的变量会保存在主内存中(Main Memory).而线程共享的变量的副本会保存在每个线程各自的工作内存中(Working Memory).线程对于共享变量的所有操作(读取,赋值...
分类:
编程语言 时间:
2015-05-17 12:06:44
阅读次数:
149
”你永远都不知道一个线程何时在运行!“
在上一篇博客JAVA并发编程1_多线程的实现方式中后面看到多线程中程序运行结果往往不确定,和我们预期结果不一致。这就是线程的不安全。线程的安全性是非常复杂的,没有任何同步的情况下,多线程的执行顺序是不可预测的。当多个线程访问同一个资源时就会出现线程安全问题。例如有一个银行账户,一个线程往里面打钱,一个线程取钱,要是得到不确定的结果那是多么可怕的事情。
引...
分类:
编程语言 时间:
2015-05-16 00:16:21
阅读次数:
157
android中Handle类的主要作用: 1.在新启动的线程中发送给消息 2.在主线程获取、处理消息为什么要用Handle这样的一个机制: 因为在Android系统中UI操作并不是线程安全的,如果多个线程并发的去操作同一个组件,可能导致线程安全问题。为了解决这一个问题,android 制定了一条规...
分类:
其他好文 时间:
2015-04-29 19:16:47
阅读次数:
102
在构建应用程序时,需要实现唯一实例化对象的类,并提供该实例的全局访问入口,以性能和框架能力为前提,还要考虑线程安全。单件模式实现方式之一:简单实现,存在线程安全问题。 public sealed class Singleton { private static Single...
分类:
其他好文 时间:
2015-04-22 23:31:14
阅读次数:
147
通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。今天我们通过实际代码来详细讲解单例的使用场景和线程安全问题······...
分类:
其他好文 时间:
2015-04-14 08:31:19
阅读次数:
152
ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?StringBuilder和StringBuffer有什么区别?这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;HashMap是非线程安全的,HashTable是线程安全的;StringBuilder是非线程安全的,StringBuff...
分类:
编程语言 时间:
2015-04-12 09:24:12
阅读次数:
129
什么是线程同步?当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。实现同步机制有两个方法:1、同步代码块:synchronized(同一个数据){}同一个数据:就是N条线程同时访问一个数据。通过使用同步方法,可...
分类:
移动开发 时间:
2015-04-11 11:37:36
阅读次数:
156