博客专栏  >  编程语言   >  深入理解java并发

深入理解java并发

理解java并发源码

关注
2 已关注
19篇博文
  • java并发编程——ExecutorService\join\yield

    ExecutorService\join\yield

    2016-01-23 23:29
    1243
  • java并发编程——线程异常处理\资源共享的问题\ThreadLocal

    过年在家的几天,因为没有网,也没有做笔记,今天一看自己写的多线程代码略感陌生。于是,从头再看一遍吧。 o(-“-)o Thread 到目前为之,我们应该清楚Thread只是你用来驱动任务(Runnab...

    2016-02-18 01:07
    815
  • java并发编程——四(synchronized\Lock\volatile) 锁机制原理及关联

    前言 其实标题使用互斥机制更合适,并发中主要两个问题是:线程如何同步以及线程如何通信。 同步主要是通过互斥机制保证的,而互斥机制我们最熟悉的就是锁,当然也有无锁的CAS实现。 多线程共享资源,比...

    2016-02-25 23:10
    1714
  • java并发编程——java内存模型/happens-before

    如有纰漏,请指正! java内存模型图 第一张图从JVM角度抽象,每个线程都有一个LocalMemory,用与存储读\写变量的副本,它抽象涵盖了cpu cache memory、cpu Registe...

    2016-03-23 15:48
    985
  • java并发编程—— 六 进程协作:阻塞队列\wait() notify()\ Condition

    进程协作的三种常用方式wait()&&notifyAll()要点: wait()中释放该对象的对象锁 notify() notifyAll() wait() 均是Object方法 noti...

    2016-03-24 23:47
    2234
  • java并发编程—— 七 Thread理解与死锁分析(哲学家进餐演示)

    线程生命周期 Start 为线程分配必要的资源,初始化线程 Runnable 线程创建后,进入就绪状态,此时线程具备了获取cpu时间片的资格 (线程调度器负责分配,线程调度器不受JVM控制,依赖...

    2016-03-26 17:29
    711
  • java并发编程—— 线程池原理 详解 ThreadPoolExecutor

    为什么要使用线程池 降低资源消耗: 通过重复利用线程,减少线程的创建销毁损耗的资源 提高响应速度: 任务到达时,不用重新创建线程,之间可以使用已经创建好的线程执行 提高线程的可管理性 线程池实现原...

    2016-03-26 17:42
    2061
  • java并发编程——ConcurrentHashMap(1.7)

    ConcurrentHashMap特点: 线程安全 在并发中使用HashMap存储k/v数据结构时,多个线程并发put操作会导致HashMap底层链表形成环路,导致Entry的next永远不为空,导...

    2016-03-26 17:44
    753
  • java并发编程——八 理解分析并发组件-CountDownLatch\CyclicBarrier\Exchanger\Semaphore

    从这章开始介绍 java.concurrent.*中的常用并发工具类,并附带有趣的示例CountDownLatch 概要 调用countDownLatch.countDown() count计数器-1...

    2016-03-26 21:02
    699
  • java并发编程——九 AbstractQueuedSynchronizer AQS详解

    AbstractQueuedSynchronizer概述AQS用来实现锁或其他同步组件的基础框架(注意区别synchronized是在字节码上加指令方式,通过底层机器语言保证同步),AQS使用int类...

    2016-03-27 21:38
    4765
  • java并发编程——一并发基础

    为什么使用多线程 多任务的处理,提高处理速度,减少相应时间,更好的体验 随着cpu的核心数量越来越多,提供了充足的硬件基础,使用多线程重复发挥机器的计算能力,合理利用资源 上下文切换cpu通过给每个线...

    2016-06-29 09:51
    806
  • java并发编程——ReentrantLock源码(重入锁、公平锁、非公平锁)

    是什么?字面翻译为 可重入锁。 可重入:指当前线程获取锁之后可以再次获取这个锁,而不会被阻塞。 锁:实现了Lock接口,通过实现内部AQS子类,完成锁的实现。并且ReentrantLock是排他锁...

    2016-10-12 23:26
    711
  • java并发编程——读写锁ReentrantReadWriteLock

    读写锁 同时允许多个读线程获取这个锁(读锁) 读写锁允许多个读线程同时获取到读锁(共享模式),但是当写线程获取到了写锁时其他任何读写操作(同一个线程依旧可以继续获取读锁,详细看下文,锁降级)均会被阻...

    2016-11-30 21:01
    624
  • java并发编程——Condition(wait\signal\notify的等待-通知模式 )

    是什么Condition组件,以AQS非静态内部类的方式实现,因此Condition初始化的前提是有Lock实例。使用场景需要进程之间有协作的场景,典型的如等待-通知模型,生产-消费模型,比如有界队列...

    2016-12-02 16:46
    818
  • JMM与并发

    为什么要并发充分利用CPU计算能力随时多核处理器的发展,计算机的计算能力越来越强大。但是,由于磁盘读写、网络IO等这些通信、存储系统与CPU的速度相差多个数量级,我们在应用计算机时,如果单纯的让cpu...

    2017-06-20 20:40
    282
  • JSR 133 (Java Memory Model) FAQ

    JSR 133 (Java Memory Model) FAQ http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#what...

    2017-06-24 22:43
    483
  • java并发编程——ConcurrentHashMap(1.8)

    请先阅读ConcurrentHashMap1.7源码阅读,对JDK1.7(1.6中也基本一致)中的ConcurrentHashMap有个大致了解。

    2017-07-27 17:49
    470
  • java并发编程——阻塞队列与非阻塞队列

    ArrayBlockingQueueArrayBlockingQueue是一个有界阻塞队列,基于数组、ReentrantLock、Condition实现。 所谓阻塞队列是指,队列满了,则会对生产线程...

    2017-07-28 14:55
    298
  • 图解java并发(上)

    为什么要“并发”? 既然聊并发,我们首先会思考为什么要引入这个技术。通常写程序,我们习惯用单线程串行的思维理解程序运行,并写业务逻辑。这样可以减少复杂度,也便于测试,往往当需要性能提升,我们才会想到...

    2017-10-10 14:17
    374

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部