彻底搞定线程池(2)-基于模型实现线程池

概述 在上一篇文章 彻底搞定线程池(1)-线程池模型的构建 中,我把线程池的主要的功能和流程给梳理了一下,并且在最后使用代码实现了一个简单的线程池。不过距离一个完整的线程池还需要多做一些东西。 本篇的代码会在上一版代码的基础上进行修改。地址为 github地址,其中steap1为上一篇的代码,steap2为本篇代码 这里先把线程池的功能罗列出来,之后一点点的把功能实现。 线程池需要提供的接口 任务的提交 温和的关闭线程池:把已提交的任务完成, ...

JAVA虚拟机系列-垃圾回收

概述 Java和C/C++,虽然同为老牌且热门的语言,但它们最大的差别之一就是GC了。C/C++需要自己管理内存,而Java有垃圾自动收集回收机制,简直不要太爽。(然而,如果你搞一些骚操作,还是有可能会导致内存泄露)。 Java垃圾回收机制是在JVM实现的,那么JVM是怎么进行GC的呢。 JVM进行垃圾回收可以概括成两个阶段。 1. 判断对象是否可回收 要进行GC,就要判断哪些对象是不会引用的, ...