摘要:
前言 在面试环节中,考察"ThreadLocal"也是面试官的家常便饭,所以对它理解透彻,是非常有必要的. 有些面试官会开门见山的提问: “知道ThreadLocal吗?” “讲讲你对ThreadLocal的理解” 当然了,也有面试官会慢慢引导到这个话题上,比如提问“在多线程环境下,如何防止自己的变 阅读全文
摘要:
线程之间为什么要进行通信线程是操作系统调度的最小单位,有自己的栈(JVM中的虚拟机stack)空间,可以按照既定的代码逐步的执行,但是如果每个线程间都孤立的运行,那就会造资源浪费。所以在现实中,我们需要这些线程间可以按照指定的规则共同完成一件任务,所以这些线程之间就需要互相协调,这个过程被称为线程的 阅读全文
摘要:
(8条消息) CMS与三色标记算法_程序员小潘的博客-CSDN博客_cms三色标记法 CMS(Concurrent Mark Sweep)是一款里程碑式的垃圾收集器,为什么这么说呢?因为在它之前,GC线程和用户线程是无法同时工作的,即使是Parallel Scavenge,也不过是GC时开启多个线程 阅读全文
摘要:
关于线程的生命周期,网上书上说法不一,难以统一,本篇做一个总结:java.lang.Thread.State 枚举类中定义了六种线程的状态,可以调用线程Thread中的getState()方法获取当前线程的状态。 下图源自《Java并发编程艺术》图4-1 一、新建状态(NEW) 即用new关键字新建 阅读全文
摘要:
一、垃圾回收算法1、标记复制算法会把内存分为相同的2个部分,每次回收,会把存活的对象移动到另一边,回收当前使用的空间。分配的内存被分成2份,实际使用空间变成正常的一半。但是不会出现垃圾碎片。 2、标记清除算法标记存活的对象,把未标记的回收。回收后内存不是连续的,会产生大量的不连续的碎片,标记对象的时 阅读全文
摘要:
我们最初学习Java的时候,遇到多线程我们会知道synchronized,对于当时的我们来说synchronized是保证了多线程之间的同步,也成为了我们解决多线程情况的常用手段。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为 阅读全文
摘要:
堆排序实现方式,前面一种时间复杂度为N^2,暴力堆排序,下面一种是nlogn,需要记忆的一种。 public void heapSort(int Array[]) { int times = Array.length - 1; while (true) { for (int i = times; i 阅读全文
摘要:
博客笔记 20小时快速入门go语言视频 - Day1 20小时快速入门go语言视频 - Day2 20小时快速入门go语言视频 - Day3 20小时快速入门go语言视频 - Day4 20小时快速入门go语言视频 - Day5 20小时快速入门go语言视频 - Day6 20小时快速入门go语言视 阅读全文
摘要:
原文:mq的那些破事儿,你不好奇吗? (qq.com) 前言 最近mq越来越火,很多公司在用,很多人在用,其重要性不言而喻。但是如果我让你回答下面的这些问题: 我们为什么要用mq? 引入mq会多哪些问题? 如何解决这些问题? 你心中是否有答案了呢?本文将会一一为你解答,这些看似平常却很有意义的问题。 阅读全文