博客专栏  >  编程语言   >  Java并发编程

Java并发编程

并发编程相关知识

关注
38 已关注
32篇博文
  • Java中CAS详解

    在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个...

    2018-05-19 12:25
    30
  • Java内存模型

    Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果...

    2018-04-15 11:08
    162
  • Java 多线程:InheritableThreadLocal 实现原理

    前言介绍 InheritableThreadLocal 之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:Java 多线程:threadlocal关键字...

    2018-05-11 11:40
    74
  • 并发编程--线程池拒绝策略RejectedExecutionHandler(三)

    线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数量超过线程池的最大限制。线程池共包括4种拒绝策略,它...

    2017-07-27 21:48
    1039
  • 并发编程--线程池ThreadPoolExecutor实现原理(二)

    ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为"存放一定数量线程的一个线程集合。线程池允许若个线程同时允许,允许同时运行的线程数量就是线程池的容量;当添加的到线程池中...

    2017-07-26 19:55
    705
  • 并发编程--线程池Executor(一)

    合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可...

    2017-07-25 19:47
    849
  • 并发编程--读写锁ReadWriteLock和ReentrantReadWriteLock(一)

    Java并发编程包提供了读写锁的实现,其维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。“写入锁...

    2017-04-25 20:18
    709
  • 并发编程--读写锁ReadWriteLock和ReentrantReadWriteLock写锁与读锁(二)

    在上一篇博客并发编程--读写锁ReadWriteLock和ReentrantReadWriteLock(一)中我们简单介绍了一下读写锁的相关知识,接下来来我们介绍一下读锁的实现机制,简单的来说写锁就是...

    2017-04-25 20:18
    753
  • 并发编程--Semaphore计数信号量

    Semaphore是一个计数信号量,它的本质是一个共享锁。信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等...

    2017-04-19 19:37
    1439
  • 并发编程--CyclicBarrier屏障

    CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循环...

    2017-04-18 19:55
    571
  • 并发编程--CountDownLatch

    CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必...

    2017-04-18 18:49
    662
  • 并发编程--公平锁和非公平锁

    在上一篇博客并发编程--互斥锁ReentrantLock中我们简单介绍了一下ReentrantLock,ReentrantLock提供了公平锁和非公平锁的机制,我们已经了解到ReentrantLock...

    2017-04-13 21:15
    523
  • 并发编程--互斥锁ReentrantLock

    ReentrantLock是一个比较常用的锁,它是一个互斥锁,互斥锁的含义就是只能由某个线程进行操作,其他线程等到释放锁资源之后才能竞争锁;同时它又是可重入的,意思是它可以被单个线程多次获取。Reen...

    2017-04-13 19:55
    428
  • 并发编程--并发编程框架概述

    JDK给我们提供了一个并发编程的包java.util.current,并发编程包中是锁功能更加强大,并且他允许更灵活的使用锁。JUC包中的锁,包括:Lock接口,ReadWriteLock接口,Loc...

    2017-04-13 18:25
    593
  • 并发编程--AbstractQueuedSynchronizer介绍和原理分析

    AbstractQueuedSynchronizer是并发编程包中最重要的类,是并发编程包的实现基层。简单来说,AbstractQueuedSynchronizer提供了一个基于FIFO的队列,用于存...

    2017-04-17 21:09
    1655
  • 并发编程--并发编程包LockSupport

    LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport主要提供了两个功能:(1)park()方法,用来阻塞线程。(2)unpark()方法,解除阻塞线程。LockSu...

    2017-04-18 12:53
    616
  • 并发编程--并发编程包Condition条件

    JDK并发编程包提供了Condition来对锁进行更精确的控制,Condition接口提供的方法还是很简单的,Condition是一个独占锁。Condition是一个多线程间协调通信的工具类,使得某个...

    2017-04-18 18:18
    688
  • 并发编程--AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray

    AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray是对数组的线程安全操作,简单来说其操作方式是使用sun.misc.Unsafe来对数组对象...

    2017-04-05 19:13
    787
  • 并发编程--原子类AtomicLong、AtomicBoolean和AtomicReference

    在上一篇博客 并发编程--原子类AotmicInteger中我们已经简单介绍了一下AtomicInteger相关的知识,简单来说AtomicLong的实现原理与AtomicInteger是相同的,用v...

    2017-04-05 18:12
    702
  • 并发编程--原子类AotmicInteger

    前几篇博客中我们已经介绍了线程、volatile、synchronized和cas自旋相关的知识,接下来我介绍一下jdk提供的并发编程包java.util.concurrent中相关的实现类知识。 A...

    2017-04-05 18:11
    733
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部