
java并发编程
见证你的路
左抓右挖,励志做一名“抓挖”工程师, 相信过程,终得答案!
展开
-
java并发包之原子类Automic
1.概述Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。原子类其内部实现不是简单的使用synchronized,而是一个更为高效的方式CAS (com...原创 2018-02-24 10:58:06 · 14954 阅读 · 1 评论 -
java并发包之阻塞队列BlockingQueue
1. 原理概述阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 如图,负责生产的线程不断的制造新对...原创 2018-02-24 12:27:52 · 295 阅读 · 0 评论 -
java并发包之ConcurrentHashMap
1. 概览ConcurrentHashMap 和HashTable类很相似,但 ConcurrentHashMap 能够提供比 HashTable 更好的并发性能。在你从中读取对象的时候 ConcurrentHashMap 并不会把整个 Map 锁住。此外,在你向其中写入对象的时候,ConcurrentHashMap 也不会锁住整个 Map。它的内部只是把 Map 中正在被写入的部分进行锁定...原创 2018-02-24 13:58:52 · 389 阅读 · 0 评论 -
并发基础二:Java内存模型
1. Java内存模型1. 定义Java内存模型规定所有变量都存储在主内存中(Main memory),每个线程还有自己的工作内存(working memory)。线程的工作内存中保存了被该线程使用到的变量的拷贝(从主内存中拷贝过来),线程对变量的所有操作都必须在工作内存中执行,而不能直接访问主内存中的变量。不同线程之间无法直接访问对方工作内存的变量,线程间变量值的传递都要通过主...原创 2018-02-24 16:11:30 · 242 阅读 · 0 评论 -
并发基础一:线程
1. 区分概念:并发和并行并发是逻辑上的同时发生,并行更多是侧重于物理上的同时发生。并发往往是指程序代码的结构支持并发,并发的程序在多cpu上运行起来才有可能达到并行,并行往往是描述运行时的状态。在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。并发关注的三个问题: 安全性,也...原创 2018-02-24 17:51:09 · 225 阅读 · 0 评论 -
java并发包之Lock
1. synchronize的限制synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性它无法中断一个正在等候获得锁的线程也无法通过投票得到锁,如果不想等下去,也就没法得到锁同步还要求锁的释放只能在与获得锁所在的堆栈帧相同的堆栈帧中进行,多数情况下,这没问...原创 2018-02-23 20:13:00 · 254 阅读 · 0 评论 -
java并发包之Condition
1. 概括Condition是java条件队列的实现,这就意味着Condition的强大之处在于它可以为多个线程间建立不同的Condition。作为一个多线程间协调通信的工具类,每个条件Contition对象内部维护了一个属于自己的等待队列,它使得某个或者某些线程一起等待某个条件(Condition ,只有当该条件具备( signal 或者 signalAll方法被带调用)时,这些等待线程...原创 2018-02-24 10:14:55 · 394 阅读 · 0 评论 -
并发基础三:synchronized
1.概括把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 1. 原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行 2. 可见性:当一个线程修改了该变量的值,另外一个线程可以立刻得知2. 使用方法1. 普通同步方法:锁对象默认是 this在...原创 2018-02-23 19:24:06 · 353 阅读 · 0 评论