
JUC
文章平均质量分 66
JUC
上山打卤面
2015年,网恋被骗8000块,站在成都双流机场一个晚上。第二次是异地恋,牵了牵手,被骗两万。
展开
-
从ReentrantLock的实现看AQS的原理及应用
前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过ReentrantLock的基本特性和ReentrantLock与AQS的关联,来深入解读AQS相关独占锁的知识点,同时采取问答的模式来帮助大家理解AQS。由于篇幅原因,本篇文章主要阐述AQS中独占锁的逻辑和Sync转载 2021-03-12 10:01:09 · 434 阅读 · 0 评论 -
多线程常见的面试题
多线程常见的面试题:1. 什么是线程和进程? 线程与进程的关系,区别及优缺点?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。如下图所示,在 windows 中通过查看任务管理器的方式,我们就可以清楚看到 window 当前运行的进程(.exe 文件的运行)。线程与进程相似,原创 2020-09-16 16:21:58 · 18133 阅读 · 9 评论 -
JUC - 并发编程总览:
1. 什么是JUC:从上图看: Java中,线程部分是一个重点,JUC也是关于线程的。JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包,与JUC相关的有三个包:java.util.concurrent、java.util.concurrent.atomic、java.util.concurrent.locks。JUC中需要学习的问题:...原创 2020-03-07 17:46:41 · 198 阅读 · 0 评论 -
JUC - 基础知识回顾:
线程基础知识:线程 和 进程:进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体 这样的解释比较的抽象 ,简单的说运行某个软件,相当于开了一个...原创 2020-03-07 18:19:26 · 288 阅读 · 0 评论 -
JUC - Lock接口
Lock接口详解:什么是Lock :为什么要使用Lock:(不是已经有了synchronized了?)Java中的锁有两种,synchronized与Lock。因为使用synchronized并不需要显示地加锁与解锁,所以往往称synchronized为隐式锁,而使用Lock时则相反,所以一般称Lock为显示锁 也就是需要手动的进行加锁和 释放锁synchronized修饰方...原创 2020-03-08 11:47:03 · 192 阅读 · 0 评论 -
JUC - Java8新特性:
Java8 新特性:什么是Lambda表达式:Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同) 上述的解释比较的抽象 简单的说Lambda 是一个匿名函数,...原创 2020-03-08 12:38:32 · 474 阅读 · 0 评论 -
JUC - 线程通信:
线程通信:面试题:两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B…5152Z上面的问题方式有非常多种 但是万变不离其宗 就是多线程顺序输出 我们都知道 多线程的启动不是按照start方法在代码中的先后顺序进行执行的 线程启动的顺序是不确定的 多线程编程就是要将不确定的 变为确定 (这也是多线程的魅力)这必然需要一套线程之间的通信机制 – 也就是通知等待唤醒机...原创 2020-03-08 13:42:27 · 228 阅读 · 0 评论 -
JUC -集合不安全:
集合不安全:常用的集合List:ArrayList线程不安全 多线程环境中会出现并发修改异常 下面的代码中使用 30个线程进行修改原创 2020-03-08 14:57:55 · 176 阅读 · 0 评论 -
JUC -多线程锁问题:
多线程锁问题:8锁现象下名词解释:顺序执行:先调用的先执行随机执行:没有规律,与计算机硬件资源有关,哪个线程先得到资源就先执行,各个线程之间互不干扰。多个线程使用同一把锁-顺序执行 多个线程使用同一个对象,多个线程就是使用一把锁,先调用的先执行!public class MultiThreadUseOneLock01 { public static void...原创 2020-03-08 15:28:45 · 267 阅读 · 0 评论 -
JUC - Callable接口
Callable接口:获得多线程的方式有几种:从1.5之后有四种方式传统的方式是继承Thread类和实现Runnable接口,Java5以后又有实现callable接口和Java的线程池获得前两种方式就不介绍了 直接看第三种方式:Callable接口使用的方式: 上述代码中的四个关键点:Callable是从jdk1.5开始出现的Callable 同Runnable接...原创 2020-03-09 10:39:24 · 275 阅读 · 0 评论 -
JUC - 辅助工具类:
JUC中辅助类详解:CountDownLatch:假设这样的一个场景 你是图书馆管理员 现在还有五个人在图书馆中怎么保证五个人都走完的时候进行锁门:使用多线程进行模拟 代码演示:public class TestThread1 { public static void main(String[] args) throws InterruptedException { ...原创 2020-03-09 12:02:52 · 298 阅读 · 1 评论 -
JUC - 读写锁:
读写锁:读写锁的基本讲解与使用ReadWriteLock同Lock一样也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个是只读的锁,一个是写锁。 读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的(排他的)。 每次只能有一个写线程,但是可以有多个线程并发地读数据。所有读写锁的实现必须确保写操作对读操作的内存影响。换句话说,一个获得了读锁的线程必须能看到...原创 2020-03-09 13:08:46 · 506 阅读 · 0 评论 -
JUC - 阻塞队列:
阻塞队列:原创 2020-03-09 13:15:41 · 234 阅读 · 0 评论 -
JUC - 线程池:
线程池:原创 2020-03-09 13:16:31 · 246 阅读 · 1 评论 -
JUC - Java8流式编程
Stream流原创 2020-03-09 13:17:27 · 194 阅读 · 0 评论 -
Java多线程 - AQS简单实现:
package cn.edu.sdk;import sun.misc.Unsafe;import java.lang.reflect.Field;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.locks.LockSupport;public class MyAQS { ...原创 2020-04-21 19:53:19 · 236 阅读 · 0 评论