分类: JUC

7 篇文章

thumbnail
同步器
同步器 1. AQS 1.1 核心思想 AQS:AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架,许多同步类实现都依赖于该同步器 AQS 用状态属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁 独占模式是只有一个线程能够访问资源,如 ReentrantLock…
thumbnail
线程池
线程池 1. 基本概述 线程池:一个容纳多个线程的容器,容器中的线程可以重复使用,省去了频繁创建和销毁线程对象的操作 线程池作用: 降低资源消耗,减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务 提高响应速度,当任务到达时,如果有线程可以直接用,不会出现系统僵死 提高线程的可管理性,如果无限制的创建线程,不仅会消耗系统资源,…
thumbnail
无锁
无锁 1. CAS 1.1 原理 无锁编程:Lock Free CAS 的全称是 Compare-And-Swap,是 CPU 并发原语 CAS 并发原语体现在 Java 语言中就是 sun.misc.Unsafe 类的各个方法,调用 UnSafe 类中的 CAS 方法,JVM 会实现出 CAS 汇编指令,这是一种完全依赖于硬件的功能,实现了原子操…
thumbnail
内存
内存 1. JMM 1.1 内存模型 Java 内存模型是 Java Memory Model(JMM),本身是一种抽象的概念,实际上并不存在,描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式 JMM 作用: 屏蔽各种硬件和操作系统的内存访问差异,实现让 Java 程序在各种平台下都能…
thumbnail
管程
管程 1. 临界区 临界资源:在多线程环境下共享的资源,但一次只能由一个线程访问或修改 临界区:指一段代码或一段程序片段,其中包含对临界资源的访问和操作 竞态条件:多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件 一个程序运行多个线程是没有问题,多个线程读共享资源也没有问题,在多个线程对共享资源读写操作时发生指…
thumbnail
线程
线程 1. 创建线程 1.1 继承 Thread 类 步骤 定义一个线程类继承 Thread 类 重写 run 方法,里面是定义线程以后要干啥 new 一个新线程对象 调用 start 方法启动线程(执行的还是run方法) /** * 方法一、通过继承Thread * * @author Enndfp */ public class ThreadD…
进程和线程
进程和线程 1. 进程 进程是计算机中的一个独立执行单元,每个进程都有自己独立的内存空间、代码和数据,是系统进行资源分配的最小单位 进程之间是相互隔离的,一个进程的崩溃通常不会影响其它进程 进程之间通信较为复杂,通常需要使用进程间通信(Inter-Process Communication,IPC)机制,如管道、消息队列、共享内存等 创建和销毁进程…