线程安全一直是程序猿们关注的焦点,多线程也一直是比较让人头疼的话题,想必大家曾经也遇到过各种各种的问题,我就不再累述了。当然,解决方式也有很多,这篇博文给大家提供一种很好的解决线程安全问题的思路。
。。。。。。
ThreadLocal是解决线程安全问题一个很好的思路,在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,并且程序拥有更高的并发性。...
分类:
编程语言 时间:
2014-08-08 08:29:45
阅读次数:
277
今天把设计模式拿出来看了下,发现以前对于单例模式的理解很是肤浅,没考虑线程安全,在考虑了线程安全的情况下又没考虑性能,当然我遇到的系统都不怎么考虑并发性能,所以其实也无所谓,当看到单例模式的时候,上网搜索了下,发下一片很好的帖子,我把其中的单例模式整理了下,给了个结果出来。 帖子地址:http...
分类:
其他好文 时间:
2014-08-08 01:53:35
阅读次数:
199
由于项目中用到了一些设计模式,所以稍微总结一下。第一个是单例模式。单例模式分为饿汉模式和懒汉模式:前者是线程安全的后者是非线程安全的。饿汉模式下,是利用静态变量的生命周期以及初始化的特性来实现的。懒汉模式是在使用的时候才初始化。但是不是线程安全的,所以需要加锁来同步。但是直接加锁的话每次都得判断,影...
分类:
其他好文 时间:
2014-08-07 00:36:47
阅读次数:
219
这里举个例子讲解,同步synchronized在什么地方加,以及同步的前提:* 1.必须要有两个以上的线程,才需要同步。* 2.必须是多个线程使用同一个锁。* 3.必须保证同步中只能有一个线程在运行,锁加在哪一块代码那么我们要思考的地方有:1.知道我们写的哪些是多线程代码 2.明确共享数据 3.明确...
分类:
编程语言 时间:
2014-08-07 00:35:07
阅读次数:
260
设计根据标示符全局只运行一次的类全局只运行一次的代码,第一个想到的绝对是dispatch_once,这是不二的选择嘛,dispatch_once还是线程安全的.这里我将提供一种非线程安全但也可以使用的全局只运行一次的代码,设计很简单:现在提供类如下:StaticFlag.h + StaticFlag...
分类:
其他好文 时间:
2014-08-06 22:49:12
阅读次数:
261
上一节售票系统中我们发现,打印出了错票,0,-1,出现了多线程安全问题。我们分析为什么会发生多线程安全问题?看下面线程的主要代码:@Override public void run() { // TODO Auto-generated method stub ...
分类:
编程语言 时间:
2014-08-06 21:47:52
阅读次数:
301
package?thread;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.concurrent.atomic.AtomicInteger;
/**
?*?@author??changxiangxiang
?*?@date?2014年8月6日?下午3:25:12
?...
分类:
编程语言 时间:
2014-08-06 19:35:52
阅读次数:
260
JDK源码学习09----HashTable
1.HashTable简介
Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。
Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。
Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null...
分类:
其他好文 时间:
2014-08-06 02:00:21
阅读次数:
257
MongoTemplate是数据库和代码之间的接口,对数据库的操作都在它里面。注:MongoTemplate是线程安全的。MongoTemplate实现了interfaceMongoOperations,一般推荐使用MongoOperations来进行相关的操作。MongoOperations mo...
分类:
数据库 时间:
2014-08-06 01:39:00
阅读次数:
273
JDK源码学习系列08----HashMap
1.HashMap简介
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,...
分类:
其他好文 时间:
2014-08-05 22:33:44
阅读次数:
408