Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间…
标签:java并发
Java并发编程札记-(一)基础-01基本概念
在学习Java并发编程之前,先来了解一下几个概念。 什么是并发?维基百科中这样介绍: 在计算机科学中,并发性是指程序,算法或问题的不同部分或单元按无序或部分顺序执行而不影响最终结果的能力。这允许并行单元的并行执行,这可以…
Java并发编程札记-(一)基础-02创建线程
本文介绍Java中如何创建线程。 目录: Runnable-定义无返回值的任务 Thread-线程构造器 Callable-定义可以返回值的任务 总结 在Java中,创建新执行线程有四种方法。 继承Thread。 实现R…
Java并发编程札记-(一)基础-03线程的生命周期
本文主要讲解Java中线程的状态。Java中线程的状态和操作系统中线程的状态有所不同。 目录 线程的生命周期 线程的状态 线程的生命周期 此图是根据自己的了解画的,如果有不足或错误欢迎指正。 线程的状态 Java中线程有…
Java并发编程札记-(一)基础-04Thread详解
在Java并发编程札记-(一)基础-02创建线程一文中,讲到了Thread中提供了许多实用的方法。在Java并发编程札记-(一)基础-03线程的生命周期一文中,讲到了线程各个状态之间的转换,其中许多转换都是通过Threa…
Java并发编程札记-(一)基础-05线程安全问题
在多线程编程中,可能会出现多个线程访问一个资源的情况,资源可以是同一内存区(变量,数组,或对象)、系统(数据库,web services等)或文件等等。如果不对这样的访问做控制,就可能出现不可预知的结果。这就是线程安全问…
Java并发编程札记-(一)基础-06synchronized详解
在Java并发编程札记-(一)基础-05线程安全问题一文中已经学习了什么是线程安全以及实现线程安全的方法。今天就来学习下其中的一种方法——隐式锁synchronized。 Java中每个对象都有且只有一个内置锁。通过sy…
Java并发编程札记-(一)基础-07volatile详解
volatile同synchronized一样,是Java中实现线程安全的一种机制。与synchronized相比,特点是使用简单、性能高,但容易出错、使用范围有限。 《Java语言规范(第三版)》中讲到: Java允许…
Java并发编程札记-(二)JUC概述
从今天开始学习JUC。JUC是java.util.concurrent包的简称。下图是JUC的整体结构。 atomic 以下是JUC中的原子类。 locks 以下是JUC中的锁,也称显示锁。 collections 以下…
Java并发编程札记-(三)JUC原子类-01概述
今天来学习JUC原子类。JUC原子类位于java.util.concurrent.atomic包下,支持在单个变量上解除锁的线程安全编程。 参考JDK1.8的java.util.concurrent.atomic包,画出…
Java并发编程札记-(三)JUC原子类-02原子方式更新单个变量
今天学习AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference,这几个类的共同特点是都提供单个变量的原子方式访问和更新功能。下面以AtomicLong为代表,对这些类…
Java并发编程札记-(三)JUC原子类-03原子方式更新数组
今天学习AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray,这几个类的共同特点是都提供数组的原子方式访问和更新功能。下面以AtomicLongArray为代表,…