标签:java并发编程

Java Core

一文秒懂 Java wait() 和 notify() 方法

chenssy阅读(389)评论(0)赞(0)

大家有没有发现,其实 「 一文秒懂 」 系列讲述的都是多线程并发开发的问题。这个话题太大了,估计没有上百篇文章都解释不清楚。 本文,我们来讲解下 Java 并发中的基础的基础,核心的核心,Java 并发编程中的最基本的机制之一 - 「 线程...

Java Core

一文秒懂 Java 之 Runnable 还是 Thread ?

chenssy阅读(233)评论(0)赞(0)

写 Java 代码的时候,我们经常会有这样的疑问:我到底是实现一个 Runnable 呢,还是扩展一个 Thread 类? 你的答案是什么呢? 那有没有标准答案呢? 答案是什么呢? 我们先来分析下,看看哪种方法在实践中更有意义以及为什么? ...

Java Core

一文秒懂 Java Thread 生命周期

chenssy阅读(261)评论(0)赞(1)

本文中,我想详细的讨论下 Java 中的核心概念 - 线程的生命周期。我会使用一张我自制的图片加上实用的代码片段,一步一步的详细剖析线程的各个状态和各个状态之间如何转换。 Java 中的多线程 Java 语言中, 多线程是由 Thread ...

Java Core

一文秒懂 Java ThreadLocalRandom

chenssy阅读(189)评论(0)赞(0)

随机数生成是一个非常常见的操作,而且 Java 也提供了 java.util.Random 类用于生成随机数,而且呢,这个类也是线程安全的,就是有一点不好,在多线程下,它的性能不佳。 为什么多线程下,Random 的性能不佳? 因为,它采用...

Java Core

一文秒懂 Java java.util.concurrent.Future

chenssy阅读(229)评论(0)赞(0)

写了几篇 Java 一文秒懂 XXX 系列的文章后,对 Java 并发编程的设计思想真的是竖然起敬。 Java 在并发方面引入了 「 将来 」( Future ) 这个概念。把所有不在主线程执行的代码都附加了将来这个灵魂。主线程只负责其它并...

Java Core

一文秒懂 Java 守护线程 ( Daemon Thread )

chenssy阅读(183)评论(0)赞(0)

在这篇简短的文章中,我们将讲解下 Java 中的守护线程,看看它们可以做什么。我们还将解释守护线程和用户线程之间的区别。 守护线程和用户线程的区别 Java 提供了两种类型的线程:守护线程 和 用户线程 用户线程 是高优先级线程。JVM 会...

Java Core

一文秒懂 Java BlockingQueue

chenssy阅读(207)评论(0)赞(1)

本文中,我们将介绍一个 java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类 - BlockQueue。我们将介绍BlockingQueue 接口的 API 以及如何使用该接口的方法使编写并发程序...

Java Core

一文秒懂 Java CountDownLatch

chenssy阅读(241)评论(0)赞(0)

本章节我们来讨论下 java.util.concurrent.CountDownLatch 这个类,顺带演示下如何在一些实际例子中使用它。 CountDownLatch 类的作用呢? 怎么说呢? 简单来说,我们可以使用它来阻塞线程,直到其他...

Java Core

一文秒懂 Java CompletableFuture ( 上 )

chenssy阅读(303)评论(0)赞(0)

本文我们来了解下 Java 8 引入的 CompletableFuture 类,了解下该类提供的功能和用例。 Java 中的异步计算 异步计算很难推理的,因为我们的大脑是同步的,会将任何计算看成是一系列的同步计算。 我们在实现异步计算时,往...

Java Core

一文秒懂 Java Google Guava 实现

chenssy阅读(295)评论(0)赞(0)

Guava 是托管在 Github.com 上的流行的 Google 开源的 Java 线程池库。 Guava 包含了许多有用的并发类,同时还包含了几个方便的 ExecutorService 实现,但这些实现类都无法通过直接实例化或子类化来...

Java Core

一文秒懂 Java ForkJoinPool

chenssy阅读(223)评论(0)赞(0)

ForkJoinPool 是Java 7 中引入的 fork/join 框架的核心之一。它解决了一个常见的问题: 如何在递归中生成多个任务。因为,即使是使用一个简单的 ThreadPoolExecutor ,也会在不断的递归中快速耗尽线程。...