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

Java并发编程

并发编程相关知识

关注
15 已关注
29篇博文
  • 并发编程--线程池拒绝策略RejectedExecutionHandler(三)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2017-04-05 18:11
    449
  • 并发编程--CAS自旋锁

    在前两篇博客中我们介绍了并发编程--volatile应用与原理和并发编程--synchronized的实现原理(二),接下来我们介绍一下CAS自旋锁相关的知识。一、自旋锁提出的背景由于在多处理器系统环...

    2017-03-31 20:53
    622
  • 并发编程--volatile应用与原理

    volatile在并发编程中扮演着重要的角色(并发编程包java.util.concurrent中运用了volatile的特性),volatile被称为轻量级锁,它在多处理器开发中保证了共享变量的“可...

    2017-03-30 20:05
    284
  • 并发编程--synchronized的实现原理(二)

    上一篇博客Thread--synchronized示例(一)中我们简单介绍了一下有关synchronized相关的知识,接下来我们详细介绍一下synchronized的实现原理。在多线程并发编程中sy...

    2017-03-30 19:36
    508
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部