Java多线程笔记(6)-Lock的使用与原理 在JUC中向我们提供了Lock接口,它是Java中另一种常用的锁操作,提供了加锁,解锁,尝试获取锁,可打断锁等特性。Lock定义了锁的功能,Lock的具体实现通常会依赖于同步器。通过继承抽象队列同步器AQS,我们可以较为方便地完成我们需要的功能。 2022-09-30 后端 > Java #笔记 #Java #多线程
Java多线程笔记(5)-线程池的使用 池化技术是一种便于资源管理,资源复用的技术。在程序运行过程中,线程也是一种资源,我们也可以使用线程池来对线程进行管理。在Java中提供了相应的线程池技术。本篇主要介绍了Executor框架下的线程池的使用,包括最基础的线程池ThreadPoolExecutor,包括线程池的创建和使用等,然后介绍了能够执行定时任务的ScheduledThreadPoolExecutor。最后简单介绍了Java中另一 2022-09-18 后端 > Java #笔记 #Java #多线程
Java多线程笔记(4)-CAS与Atomic原子类 在前面的笔记中,我们解决共享资源的问题都是使用加锁的实现,另一种思想是使用无锁并发。Java中提供的CAS操作就可以帮助我们使用无锁并发。本篇主要介绍了CAS的使用以及在JUC中利用CAS机制实现的原子类。 2022-09-11 后端 > Java #笔记 #Java #多线程
Java多线程笔记(3)-volatile与Java内存模型 本篇主要介绍了在Java中线程安全需要考虑的三大问题,原子性,可见性以及有序性。之后介绍了关键字volatile用于保证其中的可见性和有序性。最后简要介绍了Java中的JMM,Java内存模型,以及happens-before原则。了解这些原理能够帮助我们更好地理解和书写多线程代码。 2022-09-10 后端 > Java #笔记 #Java #多线程
Java多线程笔记(2)-synchronized的使用与原理 在多线程的场景中,临界资源的操作是非常常见的情况。本篇记录了临界区、临界资源的概念,然后介绍了Java中关键字synchronzied的使用以及原理,包括偏向锁、轻量级锁和重量级锁等概念,之后介绍了相关的wait-notify以及park-unpark机制的使用,最后进行了线程分析,包括线程安全分析和线程活跃性分析,其中又包括了死锁、活锁和饥饿。 2022-09-09 后端 > Java #笔记 #Java #多线程
Java多线程笔记(1)-线程的基本使用 多线程是Java中的一大高级特性。本篇主要介绍了多线程相关的基本知识,以及Java中多线程的基本使用,包括Java中线程创建、线程常用方法等。 2022-09-08 后端 > Java #笔记 #Java #多线程
Java8新特性 在Java8中,引入了很多新特性。本笔记主要记录了Java8的一些新特性,并详细介绍了Lambda表达式,Stream API以及Optional类。 2022-09-04 后端 > Java #Java