Java多线程编程-(17)-多线程异步调用之Future模式

一、线程计数器回顾在《Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier》 这一篇中,我们使用线程计数器的方式实现了在主线程中等待计数的线程执行完之后在执行阻塞等待之后的代码。看段代码回顾一下:public class SummonD...

2017-10-30 10:27:27

阅读数:5243

评论数:2

Java多线程编程-(16)-等待/通知模式接口Condition接口深入分析

前几篇:Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析Java多线程编程-(15)-读写锁ReentrantReadWriteLock深入分析一、Condition接口简介在上述两篇文章中讲解AQS的时候,我们已经知道了同步队列AQS的内部类C...

2017-10-29 10:13:50

阅读数:3963

评论数:0

Java多线程编程-(15)-读写锁ReentrantReadWriteLock深入分析

上两篇:Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析Java多线程编程-(13)- 关于锁优化的几点建议一、前言上两篇的内容中已经介绍到了锁的实现主要有ReentrantLock和ReentrantReadWriteLock。Reentran...

2017-10-28 15:06:39

阅读数:1040

评论数:0

Java多线程编程-(14)-无锁CAS操作以及Java中Atomic并发包的“18罗汉”

对于并发控制而言,锁是一种**悲观的策略**。它总是假设每一次的临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果有多个线程同时需要访问临界区资源,就宁可牺牲性能让线程进行等待,所以说锁会阻塞线程执行。 而无锁是一种**乐观的策略**,它会假设对资源的访问是没有冲突的。既然没有冲突,自...

2017-10-27 14:02:58

阅读数:1109

评论数:0

Java多线程编程-(13)- 关于锁优化的几点建议

上一篇:Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析一、背景在《 Java多线程编程-(11)-从volatile和sy...

2017-10-27 12:37:00

阅读数:5625

评论数:0

Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析

一、Lock接口在上一篇文章中: Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信 介绍了如何使用Lock实现和synchronized关键字类似的同步功能,只是Lock在使用时需要显式地获取和释放锁,synchronized实现的隐式的获取所和释放锁。虽然Lock它缺少了(通过...

2017-10-25 15:01:34

阅读数:1665

评论数:0

Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力

一、背景对于Java来说我们知道,Java代码首先会编译成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上进行执行。Java中所使用的并发机制依赖于JVM的实现和CPU的指令。下边我们对常见的实现同步的两个关键字volatile和synchroni...

2017-10-24 10:57:11

阅读数:6830

评论数:0

Java多线程编程-(10)-单例模式几种写法的错与对

前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用 Java多线程编程-(4)-线程间通信机制的介绍与使用 ...

2017-10-22 15:33:09

阅读数:1552

评论数:0

Java多线程编程-(9)-ThreadLocal造成OOM内存溢出案例演示与原理分析

前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用 Java多线程编程-(4)-线程间通信机制的介绍与使用 ...

2017-10-20 19:53:26

阅读数:7452

评论数:0

Java多线程编程-(8)-多图深入分析ThreadLocal原理

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-...

2017-10-20 17:15:13

阅读数:8174

评论数:1

Java多线程编程-(7)-使用线程池实现线程的复用和一些坑的避免

前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用 Java多线程编程-(4)-线程间通信机制的介绍与使用 ...

2017-10-16 19:20:20

阅读数:3954

评论数:0

Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-...

2017-10-12 19:32:49

阅读数:2350

评论数:0

Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信

前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用在《Java多线程编...

2017-10-10 21:14:50

阅读数:3522

评论数:2

Java多线程编程-(4)-线程间通信机制的介绍与使用

上一篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用线程间通信简介我们知道线程是操作系统中独立的个体,但是这个单独的个体之间没...

2017-10-10 18:25:52

阅读数:3672

评论数:8

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