欢迎您的访问
专注于Java技术系列文章的Java技术分享网站

Java 并发基础

Java并发系列[10]—-ThreadPoolExecutor源码分析

站长阅读(724)评论(0)赞(67)

在日常的开发调试中,我们经常会直接new一个Thread对象来执行某个任务。这种方式在任务数较少的情况下比较简单实用,但是在并发量较大的场景中却有着致命的缺陷。例如在访问量巨大的网站中,如果每个请求都开启一个线程来处理的话,即使是再强大的服...

Java并发系列[9]—-ConcurrentHashMap源码分析

站长阅读(701)评论(0)赞(97)

我们知道哈希表是一种非常高效的数据结构,设计优良的哈希函数可以使其上的增删改查操作达到O(1)级别。Java为我们提供了一个现成的哈希结构,那就是HashMap类,在前面的文章中我曾经介绍过HashMap类,知道它的所有方法都未进行同步,因...

Java并发系列[8]—-CyclicBarrier源码分析

站长阅读(673)评论(0)赞(99)

现实生活中我们经常会遇到这样的情景,在进行某个活动前需要等待人全部都齐了才开始。例如吃饭时要等全家人都上座了才动筷子,旅游时要等全部人都到齐了才出发,比赛时要等运动员都上场后才开始。在JUC包中为我们提供了一个同步工具类能够很好的模拟这类场...

Java并发系列[7]—-CountDownLatch源码分析

站长阅读(739)评论(0)赞(63)

CountDownLatch(闭锁)是一个很有用的工具类,利用它我们可以拦截一个或多个线程使其在某个条件成熟后再执行。它的内部提供了一个计数器,在构造闭锁时必须指定计数器的初始值,且计数器的初始值必须大于0。另外它还提供了一个countDo...

Java并发系列[6]—-Semaphore源码分析

站长阅读(680)评论(0)赞(72)

Semaphore(信号量)是JUC包中比较常用到的一个类,它是AQS共享模式的一个应用,可以允许多个线程同时对共享资源进行操作,并且可以有效的控制并发数,利用它可以很好的实现流量控制。Semaphore提供了一个许可证的概念,可以把这个许...

Java并发系列[5]—-ReentrantLock源码分析

站长阅读(688)评论(0)赞(83)

在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile。我们知道synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性。在大多数情况下,这些机制都能很好地...

Java并发系列[3]—-AbstractQueuedSynchronizer源码分析之共享模式

站长阅读(712)评论(0)赞(71)

通过上一篇的分析,我们知道了独占模式获取锁有三种方式,分别是不响应线程中断获取,响应线程中断获取,设置超时时间获取。在共享模式下获取锁的方式也是这三种,而且基本上都是大同小异,我们搞清楚了一种就能很快的理解其他的方式。虽然说Abstract...

一个专注于Java技术系列文章的技术分享网站