随笔分类 - Java并发编程
摘要:一、接口 1. Lock接口 A. Lock API public interface Lock { // 获取锁,如果锁不可用则线程一直等待,获取失败后,线程进入等待队列自旋或休眠,直到锁可用,而且是不可中断的 void lock(); // 与lock()方法的不同之处,在于该方法在阻塞等待锁的
阅读全文
摘要:一、概念组 1. 进程与线程 A. 进程:是指处于运动过程中的程序,并且具有一定的独立功能,它是系统进行资源分配和调度的一个单位,如QQ.exe,程序; B. 线程:是进程的一个执行单元,一个进程中至少包含一个线程,线程是CPU调度的,如Java程序的main、GC线程; C. 守护线程:是运行在后
阅读全文
摘要:一、同步计数器CountDownLatch 1. 定义:使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器初始值为线程的数量,每当一个线程执行完毕后,计数器的值就减1,当计数器的值为0时,表示所有的线程都执行完毕,然后在CountDownLatch上等待的线程就可以恢复执
阅读全文
摘要:简介:多线程下有个并发修改异常:java.util.ConcurrentModificationException。 一、List 1. 实现类 A. ArrayList:基于数组实现的,支持随机访问; B. Vector:与ArrayList类似,但线程安全的; C. LinkedList 基于双
阅读全文
摘要:一、JMM 1. JMM是Java Memory Model(Java内存模型)的简称,它是一组规范,目的是屏蔽系统和硬件的差异,是一个抽象的概念,并不真实存在。 A. 线程解锁前,必须要把共享的变量值刷新回主内存; B. 线程加锁前,必须读取主内存的最新值到自己的工作内存; C. 必须是一把锁。
阅读全文
摘要:简介:Fork/Join是由Java 7提供的并行执行任务框架,思路就是任务切分,结果合并,同时利用工作窃取机制,目的是提高效率。 1. 概念 A. 分而治之:即将任务划分为多个子任务,然后并行的执行这些子任务,等所有子任务都结束的时候,再合并成最终结果; B. 工作窃取:当一个工作线程的本地没有任
阅读全文
摘要:一、Lambda表达式 1. 特点:Lambda表达式也可称作闭包,它允许把一个函数作为一个方法的参数; 2. 语法:(parameters) -> expression 或 (parameters) -> {statements;} A. 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值
阅读全文
摘要:1. 池化技术 A. 程序运行的本质:占用系统资源,CPU/磁盘网络进行使用; B. 池有线程池、连接池、内存池、对象池等,因为线程的创建和销毁,数据库的连接和断开都很耗资源; C. 池化技术就是提前准备一些资源,以供使用。 2. 线程池作用 A. 重用存在的线程,减少对象创建、消亡的开销,性能佳;
阅读全文
摘要:1. 队列和栈 队列:就像管道,排队在,先进先出(FIFO); 栈:就像桶,先进后出。 2. 阻塞队列(BlockingQueue) A. 阻塞队列:由于队列有容量限制,故当队列元素已满时,新增加的元素必须等待,或当队列元素取出已空时,也会阻塞等待新的元素; B. ArrayBlockingQueu
阅读全文
摘要:简介:AQS(AbstractQueuedSynchronizer)抽象式的队列同步器是一个用来构建锁和同步器的框架,核心思想是如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为无锁状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配
阅读全文
摘要:1. JUC JUC是java.util.concurrent包的简称,此包提供了并发编程中很常用的工具类,并发编程是充分利用CPU资源,提高性能,多线程编程应遵守高内聚,低耦合,以及线程操作资源类。 2. lock锁 A. 传统的synchronize,用在方法上或代码块,当一个线程获取了对应的锁
阅读全文
摘要:简介:流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列,Stream操作是延迟执行的,它不会改变源对象,返回的是新Stream。 1. 创建Stream A. 创建流: 顺序流:default Stream<E> stream(); 并行流:default Stream<E> paral
阅读全文
摘要:一、Java 线程六大状态、协作方式、使用方式等; 关键字this、static、final、synchronized详解; 四大内部类; Java反射机制; Java注解机制; Java泛型机制; Java异常机制; Java线程安全方式及ThrealLocal用法; Java集合框架List、S
阅读全文