CopyOnWriteArraySet和ConcurrentSkipListSet 与线程不安全的集合类的对应关系 HashSet -> CopyOnWriteArraySet TreeSet -> ConcurrentSkipListSet CopyOnWriteArraySet概述 底层实现依赖 ...
分类:
编程语言 时间:
2020-02-19 13:14:34
阅读次数:
87
解决并发情况下的容器线程安全问题的。给多线程环境准备一个线程安全的容器对象。 线程安全的容器对象: Vector, Hashtable。线程安全容器对象,都是使用 synchronized 方法实现的。 concurrent 包中的同步容器,大多数是使用系统底层技术实现的线程安全。类似 native ...
分类:
编程语言 时间:
2020-02-18 16:38:54
阅读次数:
80
什么是线程安全 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 例如:String ...
分类:
编程语言 时间:
2020-02-17 16:06:20
阅读次数:
78
ArrayList 概述 1. ArrayList 是基于数组实现的,是一个动态数组 2. ArrayList 不是线程安全的,只能在单线程环境下;多线程使用ArrayList,应该考虑Collections.synchronizedList(List l)和concurrent并发包下的CopyO ...
分类:
其他好文 时间:
2020-02-17 15:50:08
阅读次数:
76
HashMap: 线程不安全,链表结构,效率高; Hashtable : 线程安全,但效率低,因为是Hashtable是使用synchronized的,所有线程竞争同一把锁; Synchronized Map: 线程安全,但效率低,一次性锁住整张表来保证线程安全,所以每次只能有一个线程来访问map。 ...
分类:
其他好文 时间:
2020-02-17 14:18:24
阅读次数:
62
一、 竞态 状态变量(state variable):类的实例变量,静态变量。 共享变量(shared variable):可以被多个线程共同访问的变量。 __竞态(race condition)__:是指计算的正确性依赖于相对时间顺序(Relative Timing)或者线程的交错(Interle ...
分类:
编程语言 时间:
2020-02-16 20:44:36
阅读次数:
77
StringBuffer: 线程安全的可变字符串。 StringBuffer和String的区别?前者长度和内容可变,后者不可变。如果使用前者做字符串的拼接,不会浪费太多的资源。 StringBuffer的构造方法: public StringBuffei():无参构造方法 public Strin ...
分类:
编程语言 时间:
2020-02-16 20:38:55
阅读次数:
83
Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。 Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。 新API基于ISO标准日历系统, ...
分类:
编程语言 时间:
2020-02-16 19:06:09
阅读次数:
107
线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 l 我们通过一个案例,演示线程的安全问题: 电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “功夫熊猫3”,本次电影的 ...
分类:
编程语言 时间:
2020-02-15 18:16:16
阅读次数:
62
本章节根据狂神的多线程视频进行整理,狂神多线程 av54171171 1.线程的概念 概念: 线程是操作系统能够进行运算调度的最小单位。 2.Java实现线程的3种方式 继承Thread类、实现Runnable接口、实现Callable接口 Callable不常用,容易忘记。所以重新写一遍 线程安全 ...
分类:
编程语言 时间:
2020-02-15 09:54:06
阅读次数:
67