![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 71
란 단 용
란 단 용
展开
-
AQS 源码解析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、基于ReentrantLock的公平锁进行的解析1、lock()2、ReentrantLock 的 tryAcquire()3、hasQueuedPredecessors4、acquireQueued5、addWaiter总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内原创 2021-01-24 22:40:40 · 148 阅读 · 0 评论 -
线程池的选择
文章目录前言一、参数选择1、 构造方法2、corePoolSize3、maximumPoolSize4、keepAliveTime5、BlockingQueue workQueue6、ThreadFactory threadFactory7、RejectedExecutionHandler handler二、Executors 中五种常见的线程池1. newCachedThreadPool2、newFixedThreadPool3、newSingleThreadPool4、newScheduledThrea原创 2021-01-24 11:43:18 · 732 阅读 · 0 评论 -
ThreadLocal 源码解析
文章目录一、set方法二、rehash三、replaceStaleEntry情况1:向前寻找到null的路上没找到脏entry,向后寻找到null之间的路上碰到脏entry总结一、set方法set源码示例:public void set(T value) { Thread t = Thread.currentThread(); // 获取当前线程的ThreadLocalMap ThreadLocalMap map = getMap(t);原创 2021-01-17 23:21:47 · 124 阅读 · 2 评论 -
线程池工作原理
提示:duoxiancheng文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库execute:/**原创 2021-01-13 16:44:15 · 169 阅读 · 0 评论 -
中断线程
文章目录前言一、认识中断标志位1. interrupted()2. interrupted() vs isInterrupted()二、InterrupteException的处理参考前言提示:线程的结束可以分为正常结束,和异常结束。结束线程有两种方式:1.是用stop方法,不过这个方法是强行结束正在运行的线程,会存在数据不一致的问题,已经废弃,2.是用interrupte status ,本文主要介绍2。一、认识中断标志位1. interrupted()interrupt方法用于中断线程。原创 2021-01-12 15:41:26 · 165 阅读 · 0 评论 -
ThreadLocal 源码之 expungeStaleEntry
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录学习目标:学习内容:学习时间:学习产出:项目场景:问题描述:原因分析:解决方案:前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:1、原创 2021-01-10 23:08:32 · 1407 阅读 · 1 评论 -
ThreadLocal 源码之 cleanSomeSlots
ThreadLocal 系列 1: cleanSomeSlots文章目录ThreadLocal 系列 1: cleanSomeSlots前言一、源码分析总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、源码分析先贴上源码:private boolean cleanSomeSlots(int i, int n) { boolean removed原创 2021-01-10 22:36:29 · 989 阅读 · 0 评论 -
monitor 锁优化
文章目录前言一、各种锁状态1. 自旋与自适应自旋2. 锁消除3. 锁粗化4 . 轻量级锁4.1 锁状态的标志位4.2 上锁过程4.3 解锁5. 偏向锁5.1 主要作用5.2 怎么工作二、锁优化的过程前言提示:本文我们来讲解下synchronized 锁的优化过程,详情请移步《深入理解java虚拟机》的第13章。参考文章:一、各种锁状态1. 自旋与自适应自旋 自旋定义:实际中当现有的处理器在执行任务时,有线程在等待时,可能只需要等待很短的时间即可,因此就让此线程不放弃处理器的执行时间,空循原创 2021-01-02 18:13:00 · 157 阅读 · 0 评论 -
volatile学习
文章目录一、主要作用二、可见性1. 是什么2. 原理2.指令重排2.1 是什么?2.2 指令重排在多线程存在问题3 依然线程不安全4 使用示例总结一、主要作用保证可见性禁止指令重排二、可见性1. 是什么可见性是由于多cpu而导致的缓存不一致问题而JVM中用volatie来消除了它,可看图2. 原理volatile底层做了什么事情呢,其实就是volatile在赋值操作时,其后会执行一个指令,即内存屏障的功效,它有两个作用,其一是使得本cpu的高速缓存的改值刷新会主内存,同时,使得其他c原创 2021-01-01 15:29:35 · 78 阅读 · 2 评论 -
线程的状态
文章目录前言二、各状态详解就绪状态 & running阻塞(BLOCKED)WAITINGTIMED_WAITING总结前言线程几种状态的解释。# 一、线程的状态线程的状态有六种:在Thread类里面的State 枚举中展示NEWRUNNABLE又包含两种就绪状态RUNNINGBLOCKEDWAITINGTIMED_WAITINGTERMINATED二、各状态详解就绪状态 & running即jVM已经准备好了,线程在等待抢CPU时间片。抢到就原创 2020-12-28 18:30:32 · 72 阅读 · 0 评论 -
synchronized学习
文章目录前言一、使用二、monitor介绍1.对象头2.monitor2.原理剖析1.同步代码块1. 数据准备总结前言提示:分析synchronized的实现原理。概括:Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现, 无论是显式同步(有明确的 monitorenter 和 monitorexit 指令,即同步代码块)还是隐式同步都是如此。一、使用代码块实例方法静态方法使用比较简单,略,自行百度。二、monitor介绍1.对原创 2020-12-25 15:39:01 · 102 阅读 · 1 评论 -
多线程面试题
多线程面试题https://www.cnblogs.com/dolphin0520/p/3932934.html原创 2019-02-28 15:27:42 · 171 阅读 · 0 评论