hashMap非常好用,它的Key-Value刚好对应object的属性和值,可以免去创建一些Model实体类 hashMap和HashTable作用好像比较相似,下面是些比较 hashmap 线程不安全 允许有null的键和值 效率高一点、 方法不是Synchronize的要提供外同步 有cont ...
分类:
其他好文 时间:
2017-12-21 01:57:04
阅读次数:
229
单例模式?:系统运行期间,有且仅有一个实例! 1:它必须自行创建这个实例(定义了静态的该类私有对象) 2:一个类只有一个实例(只提供私有构造器(核心)) 3:它必须自行向整个系统提供这个实例(提供一个静态的公有的方法,返回创建或者获取本身的静态私有对象) 这样的单例在高并发的时候存在线程不安全的弊端... ...
分类:
其他好文 时间:
2017-12-18 01:26:22
阅读次数:
127
线程安全: StringBuffer 、HashTable、Vector、stack 线程不安全: StringBuilder、HashMap、ArrayList ...
分类:
编程语言 时间:
2017-12-14 21:15:36
阅读次数:
152
本节主题:如果一个类是线程不安全的,但是又要在多线程程序中安全地使用,你该怎么办? 大体有两种思路:第一种:确保该对象是能由单个线程访问,也就是这个对象是被封闭在线程中的;第二种:通过锁来对该对象的访问进行保护。 实例封闭 封装简化了线程安全类的实现过程,提供了一种实例封闭机制(Instance C... ...
分类:
编程语言 时间:
2017-12-14 11:59:20
阅读次数:
121
python的锁可以独立提取出来 概念 资源加锁其实并不是给资源加锁, 而是用锁去锁定资源,你可以定义多个锁, 像下面的代码, 当你需要独占某一资源时,任何一个锁都可以锁这个资源 就好比你用不同的锁都可以把相同的一个门锁住是一个道理 线程不安全: 最普通的一个多线程小例子。我一笔带过地讲一讲,我创建 ...
分类:
编程语言 时间:
2017-12-14 03:18:15
阅读次数:
223
转载: 《ava并发编程的艺术》第7章 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会 ...
分类:
编程语言 时间:
2017-12-09 11:04:50
阅读次数:
235
`java.util.HashMap`是最常用的java容器类之一, 它是一个线程不安全的容器. 本文对JDK1.8.0中的HashMap实现源码进行分析. 使用位运算巧妙的进行散列并使用链地址法处理冲突. 自JDK1.8后, 若表中某个位置元素数超过阈值 则会将其自动转换为红黑树来提高检索效率. ...
分类:
编程语言 时间:
2017-11-28 01:36:37
阅读次数:
217
单例模式有以下特征: 一、懒汉模式(线程不安全) 二、饿汉模式(线程安全,在类加载的时候完成实例化操作) 三、测试类 ...
分类:
其他好文 时间:
2017-11-20 21:51:19
阅读次数:
101
`java.util.ArrayList`是最常用的工具类之一, 它是一个线程不安全的动态数组. 本文将对JDK 1.8.0中ArrayList实现源码进行简要分析. 底层采用 来存储, 每次添加元素前都会检查数组是否有足够空间容纳新的元素. 若数组空间不足则会进行扩容操作, 即创建一个容量更大的数 ...
分类:
编程语言 时间:
2017-11-20 01:14:22
阅读次数:
156
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (i ...
分类:
其他好文 时间:
2017-11-19 19:42:28
阅读次数:
98