
线程安全
气自华
寂寥无踪,纵然寂静,依然欢喜。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java CopyOnWriteArrayList详解
CopyOnWriteArrayList是ArrayList 的一个线程安全的变体,其中所有可变操作(add、set等等)都是通过对底层数组进行一次新的复制来实现的。 这一般需要很大的开销,但是当遍历操作的数量大大超过可变操作的数量时,这种方法可能比其他替代方法更有效。在不能或不想进行同步遍历,但又需要从并发线程中排除冲突时,它也很有用。“快照”风格的迭代器方法在创建迭代器时使用了对数转载 2016-09-29 18:32:58 · 293 阅读 · 0 评论 -
Java多线程3:Thread中的静态方法
http://www.cnblogs.com/xrq730/p/4851344.html Thread类中的静态方法 Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程进行操作。下面来看一下Thread类中的静态方法: 1、currentThread() current转载 2017-05-04 22:31:15 · 487 阅读 · 0 评论 -
Java多线程2:Thread中的实例方法
http://www.cnblogs.com/xrq730/p/4851233.html Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Threa转载 2017-05-04 22:30:25 · 381 阅读 · 0 评论 -
Java多线程1:进程与线程概述
http://www.cnblogs.com/xrq730/p/4850883.html 进程和线程 谈到多线程,就得先讲进程和线程的概念。 进程 进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程 线程 进程中独立运行的子任务就是一个线程。像QQ.exe运行的转载 2017-05-04 22:29:12 · 305 阅读 · 0 评论 -
多线程编程(三)--创建线程之Thread VS Runnable
http://blog.csdn.net/liutengteng130/article/details/46663823 前面写过一篇基础的创建多线程的博文: 那么本篇博文主要来对比一下这两种创建线程的区别。 继承Thread类: 还拿上篇博客的例子来说: 四个线程各自卖各自的票,说转载 2017-04-30 14:23:41 · 360 阅读 · 0 评论 -
多线程编程(二)--进程&&线程
http://blog.csdn.net/liutengteng130/article/details/46662817 看完上篇博文的介绍后,大家应该大概了解进程和线程的由来。有了这样一个背景我们进一步来看一下线程和进程。 引入进程: 进程可以提高系统的并发性,提高CPU的使用率,从而提高程序的性能。在以前单道操作系统中,一次只执行一个转载 2017-04-30 13:33:54 · 260 阅读 · 0 评论 -
多线程编程(一)--进程和线程之由来
http://blog.csdn.net/liutengteng130/article/details/46661847 Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因转载 2017-04-30 13:13:03 · 254 阅读 · 0 评论 -
深入浅出Java并发包—锁机制
http://www.cnblogs.com/longshiyVip/p/5213771.html http://www.cnblogs.com/longshiyVip/p/5211490.html http://www.cnblogs.com/longshiyVip/p/5213812.html 前面我们看到了Lock和synchronized都能正常的保证数据的一转载 2017-04-09 22:30:37 · 406 阅读 · 0 评论 -
深入JVM锁机制之一:synchronized
http://developer.51cto.com/art/201111/304378.htm 目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。 数据同步需要依赖锁,那锁的同步又依赖谁?sync转载 2017-04-09 22:25:25 · 270 阅读 · 0 评论 -
【Java线程】锁机制:synchronized、Lock、Condition
http://blog.csdn.net/vking_wang/article/details/9952063 http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁 http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: J转载 2017-04-09 22:21:58 · 223 阅读 · 0 评论 -
java,锁机制详解
打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。 在此我们先来明确一下我们的前提条件。该对转载 2017-04-09 22:14:59 · 447 阅读 · 0 评论 -
JVM内存模型、指令重排、内存屏障概念解析
http://www.cnblogs.com/chenyangyao/p/5269622.html 在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器、运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要。否则,你很难搞清楚哪些操作是在并发先绝对安全的?哪些是相对安全的?哪些并发同步手段性能最低?valotile的转载 2017-03-30 15:02:47 · 611 阅读 · 0 评论 -
ReentrantReadWriteLock读写锁的使用
http://www.cnblogs.com/liuling/archive/2013/08/21/2013-8-21-03.html Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。 读写锁:分为读锁和写锁,多个读锁不互斥转载 2016-11-14 11:07:09 · 6188 阅读 · 2 评论 -
Java多线程4:synchronized锁机制
http://www.cnblogs.com/xrq730/p/4851350.html 脏读 一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。 多线程线程安全问题示例 看一段代码: public class Thread转载 2017-05-04 22:32:27 · 378 阅读 · 0 评论