原文地址:http://www.iteye.com/topic/1103980ConcurrentHashMap 是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并 且其内部的结构...
分类:
编程语言 时间:
2015-01-06 15:11:43
阅读次数:
197
线程安全性1.什么是线程安全 在线程安全的定义中,最核心的概念是正确性。正确性的含义是,某个类的行为与规范完全一致。当对正确性有了一个比较清晰的定义后,就可以定义线程安全性:当多个线程访问某个类时,这个类始终能表现出正确的行为,那这个类就是线程安全的。 举例:无状态对象一定是线程安全的。 ...
分类:
编程语言 时间:
2015-01-02 23:37:50
阅读次数:
236
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。
volatile关键...
分类:
编程语言 时间:
2015-01-01 16:00:40
阅读次数:
175
目前关于线程安全性没有一个统一的定义,作者自己总结了一个定义,如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么就称这个类是线程安全的。在并发编程中,由于不恰当的执行时序而出现不确定的结...
分类:
编程语言 时间:
2014-12-30 11:31:55
阅读次数:
183
《Java并发编程实战》要点笔记及java.util.concurrent 的结构介绍...
分类:
编程语言 时间:
2014-12-27 19:04:31
阅读次数:
453
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办...
分类:
编程语言 时间:
2014-12-23 17:02:13
阅读次数:
259
Java 5.0 adds ConcurrentHashMap, a replacement for synchronized hash-based Map implementations, and CopyOnWriteArrayList, a replacement for synchroniz...
分类:
编程语言 时间:
2014-12-09 00:24:05
阅读次数:
192
多个线程访问同一个变量时,可能会出现问题。这里我用两个线程同时访问一个int count变量,让他们同时+1。同时让线程睡眠1秒,每个线程执行10次,最后应该输出20才对,因为count++并不是原子操作,这里需要做并发处理,如用syn...什么关键词,当然还有别的方法。后面在说这里为了是两个线程访...
分类:
编程语言 时间:
2014-12-08 22:42:42
阅读次数:
285
共享数据是并发程序最核心的问题之一,对于继承Thread类或者实现Runnable接口的对象来说尤其重要。如果创建的对象实现了Runnable接口的类的实例,用它作为传入参数,并创建多个线程对象并启动这些线程,那么所有的线程将共享相同的属性。如果在一个线程中改变一个属性,所有线程都会被这个改变影响。...
分类:
编程语言 时间:
2014-12-08 17:40:32
阅读次数:
319
同步工具类可以使任何一种对象,只要该对象可以根据自身的状态来协调控制线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括:信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)。...
分类:
编程语言 时间:
2014-12-07 19:10:30
阅读次数:
241