03 2020 档案
摘要:深入理解多线程(三) 在前两篇博客中深入理解多线程(一)、深入理解多线程(二)中分别介绍了:多线程在jvm内存图中的状态、多线程的两种实现方式、多线程的安全;接下来介绍线程的状态。 1 线程状态概述 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,
阅读全文
摘要:深入理解多线程(二) 在上一篇博客深入理解多线程(一)中介绍了,多线程实现的两种方式,多线程在jvm中的内存状态,这篇博客将介绍多线程的线程安全,根据一个买票例子来讲解多线程中的安全问题。 1 线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是
阅读全文
摘要:深入理解多线程(一) 1.多线程的原理 1.1 代码展示多线程 为了演示多线程,我们用一个代码来展示多线程的效果: java public class MyThread extends Thread{ public MyThread(String name){ super(name); } @Ove
阅读全文
摘要:HashSet底层、及存入对象时候如何保持唯一 在 JDK1.8 之前,哈希表底层采用 数组+链表 实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。 但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,哈希表存储采用 数组+
阅读全文
摘要:Idea的debug调试 使用IDEA的断点调试功能,查看程序的运行功能。 1.在有效的代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序 2.点击Debug运行模式 3.程序在断点上不再执行,而IDEA最下方打开了Debug调试窗口 4.Debug调试窗口介绍
阅读全文

浙公网安备 33010602011771号