排序:
默认
按更新时间
按访问量
RSS订阅

Java 多线程面试题

前言 在看完《Java多线程编程核心技术》与《Java并发编程的艺术》之后,对于多线程的理解到了新的境界. 先拿如下的题目试试手把. 投行面试 Q1: 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行? 答案: 使用Thread....

2019-03-27 20:06:51

阅读数 211

评论数 0

Java 多线程(总章)

前言 随着CPU核数的不断增多,多线程技术变得越来越重要.就个人感觉, 其也是分布式研究的基础. 在新时代内, 必然会从本机多线程协作向多机多进程协作进行发展.(最近比较火的Hadoop与Spark皆是如此). Java内的多线程技术来源已久, 从开始的Thread/Runnable结构、sync...

2019-03-27 10:54:07

阅读数 56

评论数 0

JUC包(六) Executor框架

前言 在上文中, 我们介绍了线程池的基本构造与使用原理. 本章, 我们将介绍下线程池的上一层的包装Executor. 正文 为了应对不同的场景, Java设计者设计出不同的线程池 ThreadPoolExecutor FixedThreadPool 固定大小线程池 SingleThread...

2019-03-27 01:46:44

阅读数 24

评论数 0

JUC包(五) 线程池

前言 在前面的篇章中.我们将解了线程/锁/多线程容器.本章我们将介绍一个用于管理线程的容器:线程池. 正文 线程池基本构造如下所示: 基本使用步骤如下: 步骤1: 核心线程池是否已满? 未满直接执行,满了放入等待队列BlockedQueue中. 步骤2: 等待队列是否已满? 未满放入其中, 满...

2019-03-27 01:29:09

阅读数 34

评论数 0

JUC包(四) 并发容器与框架

前言 在经过前几章的AQS与CAS等原理的轰炸之后. 本章, 我们将了解下JUC包内常见的并发容器.对于各种的并发容器, 我们会各取一个进行细说. Map类型容器(CurrentHashMap) Queue类型容器(ConcurrentLinkedQueue) 阻塞队列类型容器(BlockedL...

2019-03-27 00:37:58

阅读数 38

评论数 0

JUC包(三) 锁与锁实现(AQS)

前言 在原 JUC包 (一) 原子类 与 CAS操作中我们主要了解了什么是原子操作,以及原子操作的实现CAS(Compare ans Swap)操作. 本章,我们继续接着介绍使用CAS原理实现的锁操作. 锁在JUC包中使用非常广泛, 其取代了传统的synchronized关键字被广泛使用. 下文...

2019-03-26 20:24:29

阅读数 60

评论数 0

Java 多线程技巧

总结 本章主要记录.Java多线程分析和使用过程中的一些技巧.后续的内容也会陆续补充在此处. 正文 如何Dump文件? 使用jstack -l <pid> >> filename. 例如: jstack -l 20866 &gt...

2019-03-23 10:21:32

阅读数 29

评论数 0

HashMap 线程安全问题

前言 我们紧接着上节ArrayList 线程安全问题讲下HashMap的线程安全问题. 之前看书,书中经常会提及.HashTable是线程安全的,HashMap是线程非安全的.在多线程的情况下, HashMap会出现死循环的情况.此外,还会推荐使用新的JUC类 ConcurrentHashMap....

2019-03-21 21:55:33

阅读数 54

评论数 0

ArrayList 线程安全问题

前言 在观看多线程书籍的时候,经常会看到大家提及ArrayList与HashMap时候.皆会说明, ArrayList与HashMap类型都不是线程安全的. 那么,在传统的集合包内的集合类到底为什么线程非安全呢?在新的JUC包类又有什么可以替代呢? 让我们开始今天的部分. 本章主要包括如下几个部分...

2019-03-21 17:33:39

阅读数 715

评论数 0

JUC包 (二) CountDownLatch、CyclicBarrier、Semaphore 工具类

前言 在Java 多线程(三) 线程通信内我们介绍了可以使用join()方法来控制某个线程在一众线程后执行. 正这一节中,我们将介绍三种工具类,同样实现这一目标. 三种工具使用场景各部相同. 本章主要分为如下几个部分: CountDownLatch类 CycleBarrier类 Semaphor...

2019-03-20 02:28:21

阅读数 65

评论数 0

JUC包 (一) 原子类 与 CAS操作

前言 在前四个模块中,我们主要介绍了Thread类、synchronized与volatile关键字、线程通信、ReentrantLock锁. 本节我们将介绍Java中的原子操作. 本章主要包括如下几个部分: 原子更新基本类型 原子更新数组 原子更新引用类型 原子更新字段类 正文 原子更新基...

2019-03-20 01:48:14

阅读数 46

评论数 0

Java 多线程(四) 锁与锁机制

前言 在Java 多线程(二) Synchronized与Volatile关键字内我们介绍了synchronized关键字,以及与锁之间的关系.在本章中,我们将继续介绍这部分的内容 同时,我们可以解决在Java 多线程(三) 线程通信中提及的,无法唤醒某个特定线程的问题.(Condition类进行...

2019-03-20 00:59:17

阅读数 69

评论数 0

Java 多线程(三) 线程通信

前言 在前一章我们介绍了线程中较为重要的几个关键字synchronized与volatile.synchronized关键字主要是用于标示线程的同步关系与锁.volatile主要是用于将线程内的局部变量与进程总变量之间的交互关系. 本文我们将介绍下线程之间的相互通信.本章主要包括如下的几个部分的内...

2019-03-19 16:31:51

阅读数 58

评论数 0

Java 多线程(二) Synchronized与Volatile关键字

前言 在上章中,我们介绍了Java Thread API.本章我们介绍下Java中的Synchronized与Volatile关键字. 在本章中,我们将介绍如下的几个模块: Synchronized关键字 线程安全问题 synchronized 关键字的使用 对象锁与类锁 Synchroniz...

2019-03-19 01:46:03

阅读数 48

评论数 0

Java 多线程(一) Thread API 基础

前言 Java自开发之初就具有多线程多特性,其于JDK1.5又增添了java.util.concurrent内增添了非常多的多线程组件.于本章之中,我们优先总结下在Java初期,我们经常使用的Java API. 其中,虽然stop()等方法已经废弃,我们仍然将其提出,并且提出其优/缺点. Java...

2019-03-18 01:37:15

阅读数 31

评论数 0

提示
确定要删除当前文章?
取消 删除