Set集合总览 集合元素无序、不重复,三个实现类都是线程不安全的,最好在创建时通过Collections工具类的synchronizedSortedSet方法来包装Set集合,防止对set集合的意外非同步访问。 HashSet类 1. 底层数据结构是哈希表(是一个元素为链表的数组) 和红黑树,按Ha ...
分类:
其他好文 时间:
2018-09-29 21:29:08
阅读次数:
150
表格: 类型 默认容量 加载因子[1] 扩容增量 底层实现 是否安全及同步方式 Vector 10 1 2倍 Object数组 安全,synchronized ArrayList 10 1 1.5倍(>>1) Object数组 线程不安全 LinkedList 无 1 无(1个1个加) 链表 线程不 ...
分类:
其他好文 时间:
2018-09-26 23:58:08
阅读次数:
394
8.线程安全 什么是线程安全? 马克-to-win: (视频下载) (全部书籍)最大的大白话,你的代码一个线程执行挺好,一上多线程测试就玩儿完(结果不是你所想要的),这就是线程不安全。反之为线程安全。首先,我们把第二章讲单态模式或单例模式(Singleton)的例子再搬过来一次,但这里把一些无关的打 ...
分类:
编程语言 时间:
2018-09-24 19:35:07
阅读次数:
150
下面我们再给出一个线程不安全的例子。 (视频下载) (全部书籍)例:1.8.2-本章源码class BookMark_to_win { int bookNum=10; void onlySellOne() { if (bookNum > 0) { System.out.println(Thread. ...
分类:
编程语言 时间:
2018-09-24 19:34:36
阅读次数:
169
Java单例模式的七种写法 第一种(懒汉,线程不安全) 优缺点: 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。 第二种(懒汉,线程安全) 优缺点: 这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下 ...
分类:
编程语言 时间:
2018-09-24 00:37:12
阅读次数:
137
下面是java中常见的集合: List--列表:内部元素有序,可以重复, ArrayList:线程不安全,效率高。数据结构是线性表,底层结构是顺序表,也就是数组,有唯一的下标来指定元素的位置,查询快,增删慢。 Vector:类似于ArrayList,但是线程安全,代价就是效率低。完全可以用Array ...
分类:
编程语言 时间:
2018-09-17 17:46:07
阅读次数:
183
ThreadLocal翻译成中文比较准确的叫法应该是:线程局部变量。 这个玩意有什么用处,或者说为什么要有这么一个东东?先解释一下,在并发编程的时候,成员变量如果不做任何处理其实是线程不安全的,各个线程都在操作同一个变量,显然是不行的,并且我们也知道volatile这个关键字也是不能保证线程安全的。 ...
分类:
其他好文 时间:
2018-09-16 19:41:05
阅读次数:
164
源文件名为 t.c 编译命令 为 gcc -o t -g t.c 无法编译 并提示 原因是 因为pthread库不是Linux系统默认的库 所以正确的命令如下 产生输出 以上代码实现了对同一个全局变量的自加运算 循环次数为一千万次。但该例子是一个线程不安全的代码 而在 windows 下 运行的结果 ...
分类:
编程语言 时间:
2018-09-12 20:16:42
阅读次数:
238
前言 在上一篇关于Serlvet框架和Servlet生命周期的学习中,我们已经知道了在多线程的情况下 Servlet是线程不安全的。Servlet体系是建立在java多线程的基础之上的,它的生命周期是由Tomcat 来维护的。当客户端第一次请求Servlet的时候,tomcat会根据web.xml配 ...
分类:
编程语言 时间:
2018-09-11 18:03:52
阅读次数:
138
一,模拟并发代码: 线程不安全的代码 二,二.原子性-Atomic包1.AtomicInteger类中提供了incrementAndGet方法; public final int incrementAndGet() { return unsafe.getAndAddInt(this, valueOf ...
分类:
其他好文 时间:
2018-09-10 21:51:17
阅读次数:
251