- 博客(7)
- 收藏
- 关注
原创 java中的Join阻塞
先说结论:阻塞调用线程,等待结果返回,类似于future,本质上是调用了wait证明例子一: @Test public void test() throws InterruptedException { Thread t = new Thread(() -> { System.out.println("开始"); try { Thread.sleep(500
2022-04-08 16:11:29
941
原创 手动实现threadlocal
我们先知道ThreadLocal是线程中的变量,ThreadLocal为我们提供了get,set和remove方法。我们先创建一个类,里面有一个变量并且有get,set和remove方法package com.hzt.learnthreadlocal.learnwrite;/** * @Author: hzt * @Date: 2022/2/24 19:42 */public class MyThreadLocal<T> { T value; public T
2022-04-07 16:27:12
704
原创 从共享不安全num++到线程拥有自己的ThreadLocal变量
1:num++是不安全的如果我们要实现一个计数的操作最简单的方法就是在方法里面定义一个变量,将变量加1。证明num++是不安全的package com.hzt.learnthreadlocal.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util
2022-04-07 16:24:24
278
原创 【可达性分析中的增量更新和原始快照】
为什么会有增量更新和原始快照两种算法?1:本次应该清理的对象,被用户线程更新为存活对象,逃过本次清理2:将原本存活的对象的标记为已消亡,一个程序还需要使用的对象被回收了,那程序肯定会因此发生错误在了解增量更新和原始快照之前,首先先理解三色标记白色:表示对象尚未被垃圾回收器访问过。显然,在可达性分析刚刚开始的阶段,所有的对象都是白色的,若在分析结束的阶段,仍然是白色的对象,即代表不可达。标记结束,清除所有的白色对象黑色:表示对象已经被垃圾回收器访问过,且这个对象的所有引用都已经扫描过。黑色的对象代表
2022-01-11 20:44:20
2278
4
原创 【Java垃圾收集器】
jvm哪几种垃圾收集器,各自的优缺点,包括原理,流程?(题外话:本人电脑堆初始化250M左右,最大堆3.5GB左右可使用java -XX:+PrintCommandLineFlags -version查看,查看新生代老年代的空间:java -XX:+PrintGCDetails -version,jdk8默认垃圾回收组合为UseParallelGC 即 Parallel Scavenge + Parallel Old)有分代的垃圾收集器,需要新生代和老年代垃圾收集器的相互配合;使用垃圾收集器时要注意各种
2022-01-07 00:02:01
179
原创 多线程之volatile特性及实现原理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码
2022-01-01 00:54:30
386
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人