笔记
且慢!
这个作者很懒,什么都没留下…
展开
-
自定义线程池
我这里通过看书学习到一篇线程池的原理,以及去自己定义线程池,对线程池的理解还是增加不少,在此记录一下。首先得理解什么是线程池,简单来说,就是一个池子里边存放着一些已经创建好的线程,有任务提交过来,启用池子里的某个线程去执行此任务。但是还有一些问题,就是如果池子中的线程数量不够应付太多的任务时,则需要去自动向池子里增加一些新的线程,但是也不能是无限增加的。如果任务比较少的话,那也不能让太多的资源浪费,就得自动回收一些线程。为了能异步地提交任务和缓存没有被处理的任务,还需要有一个任务队列。所以,线程池需要原创 2021-10-12 19:55:18 · 242 阅读 · 0 评论 -
Hook (钩子) 线程学习总结
当 JVM 进程退出的时候,或者受到了系统的中断信号,hook线程就会自动执行,通过 Runtime 可以为 JVM 注入多个 Hook 线程。然后看个简单的例子:import java.util.concurrent.TimeUnit;/** * @author hasaki_w_c * @version 1.0 * @date 2021/9/28 20:52 */public class HookTest { public static void main(String[] ar原创 2021-10-08 16:27:23 · 320 阅读 · 0 评论 -
捕获线程执行异常
在 Thread 类中,可以获取线程运行时异常的 API 总共有四个public void setUncaughtExceptionHandler(UncaughtExceptionHandler eh) :为某个特定线程指定 UncaughtExceptionHandler。public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh):设置全局的 UncaughtExceptionHandler。原创 2021-09-28 20:25:48 · 350 阅读 · 0 评论 -
自定义显示锁(学习记录)
由上一篇 synchronized 理解可以知道,synchronized 提供了一种排他式的数据同步机制,某个线程在获取 monior lock 的时候可能会被阻塞,而这种阻塞有两个很明显的缺陷:无法控制阻塞时长阻塞不能被中断所以此篇文章就实现一个具备 synchronized 关键字所有功能的同时又具备可中断和 lock 超时的功能。话不多说,开始看接口import java.util.List;import java.util.concurrent.TimeoutException;原创 2021-09-26 19:32:07 · 110 阅读 · 0 评论 -
深入理解 synchronized 关键字
看书的时候,看到这里,觉得有必要记录一下,那就顺手写一下。先看一下 synchronized 的官方解释的翻译:synchronized 关键字可以实现一个简单的策略来防止线程干扰和内存一致性错误,如果一个对象对多个线程是可见的,那么该对象的所有读或者写都将通过同步的方式来进行。synchronized 提供了一种锁的机制,能够确保共享变量的互斥访问,从而防止数据不一致问题的出现。synchronized 包括 monitor enter 和 monitor exit 两个 JVM 指令,它能够保原创 2021-09-21 16:56:01 · 329 阅读 · 0 评论 -
ArrayList<Integer> 类型转为 int 类型数组
Java代码如下:int[] nums = list.stream().mapToInt(Integer::intValue).toArray();原创 2021-04-22 20:35:20 · 183 阅读 · 0 评论 -
MySQL 中 日期数据获取当前时间再加一天
用此函数即可date_add(now() ,INTERVAL 1 day)原创 2021-03-03 22:19:55 · 1407 阅读 · 1 评论 -
Java虚拟机笔记更新中。。。
Java虚拟机笔记Java内存区域与内存溢出异常概述运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存Java内存区域与内存溢出异常概述对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题。本章从概念上介绍Java虚拟机内存的各个区域,讲解这些区域的作用、服务对象以及其中可能产生的问题。运行时数据区域下图为Java虚拟机运行时数据区程序计数器程序计数器原创 2020-11-24 12:33:58 · 81 阅读 · 0 评论 -
冒泡排序-Java实现(简单易学哦)
用Java实现冒泡排序(简单易学哦)冒泡排序原理以及代码实现基本思想举例说明更加贴切举例代码实现对学生成绩进行排序,输出学生信息实现代码冒泡排序原理以及代码实现本文讲述冒泡算法的原理和使用冒泡算法实现其一般功能。基本思想冒泡排序的基本思想是 :每次比较两个相邻的元素,如果它们的顺序错误就把他们交换过来。举例说明更加贴切例如我们需要将 12 35 99 18 76 这五个数进行从大到小的排序。既然是从大到小,那么肯定越小的就得越靠后(这句话很关键哦)。首先比较第一位和都二位的大小,现在第一位是1原创 2020-05-13 17:05:19 · 1309 阅读 · 1 评论