随笔分类 - 线程
摘要:什么是AQS AQS(AbstractQueuedSynchronizer)是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架。这个抽象类被设计为作为一些可用原子int(private volatile int state)值来表示状态的同步器的基类(如:独占锁。1
阅读全文
摘要:简介 使用锁时,线程获取锁是一种悲观锁策略,即假设每一次执行临界区代码都会产生冲突,所以当前线程获取到锁的时候同时也会阻塞其他线程获取该锁。而CAS操作(又称为无锁操作)是一种乐观锁策略,它假设所有线程访问共享资源的时候不会出现冲突,既然不会出现冲突自然而然就不会阻塞其他线程的操作。因此,线程就不会
阅读全文
摘要:术语定义 术语 英文单词 描述 共享变量 在多个线程之间能够被共享的变量被称为共享变量。共享变量包括所有的实例变量,静态变量和数组元素。他们都被存放在堆内存中,Volatile只作用于共享变量。 内存屏障 Memory Barriers 是一组处理器指令,用于实现对内存操作的顺序限制。 缓冲行 Ca
阅读全文
摘要:进程与线程 进程 进程是系统中正在运行的一个程序,程序一旦运行就是进程,也可以说进程是受操作系统管理的基本运行单元进。 平时我们打开的任务管理器中看到进程就是启动的程序,如浏览器的打开等等 线程 进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多子任务在运行,比如聊天线程、好友视频
阅读全文
摘要:Thread图解 Thread类包含方法过多,目前只截取部分 Thread中的实例方法 Thread类中的方法调用方式: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Thread.currentThread.XXX()或Thread.XXX() 这种调用方式表示的线程是正在执
阅读全文
摘要:开启线程执行任务,可以使用Runnable(无返回值不支持上报异常)或Callable(有返回值支持上报异常)接口去实现。若是开启线程池并需要获取结果归集的情况下,如何实现,以下主要介绍几种方式。 以下介绍的接口或类都存在于并发包java.util.concurrent.*中,我们主要从类图着手看齐
阅读全文
摘要:背景 Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,还支持并发操作:parallelStream。 Java8并行流ParallelStream和Stream的区别就是Stream支持行执行,而Parallel
阅读全文
浙公网安备 33010602011771号