1. 系统软件目录汇总

    Linux Linux 排查进程和线程 Linux 磁盘空间分析和删除日志文件

    2021/08/28 system

  2. macOS 系统软件备份

    brew安装软件备份 # 备份 $ brew install htop $ brew tap Homebrew/bundle $ brew bundle dump $ mv Brewfile ~/cloud # 还原 $ brew bundle

    2021/08/28 macOS

  3. JVM - 引用类型

    在 JDK 1.2 版之前,Java 里面的引用是很传统的定义:如果 reference 类型的数据中存储的数值 代表的是另外一块内存的起始地址,就称该 reference 数据是代表某块内存、某个对象的引用。这种 定义并没有什么不对,只是现在看来有些过于狭隘了,一个对象在这种定义下只有“被引用”或 者“未被引 用”两种状态,对于描述一些“食之无味,弃之可惜”的对象就显得无能为力。譬如我们希望能描述一类对 象:当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以 抛弃这些对象 —— 很多系统的缓存功能都符合这样的应用场景。

    2021/08/24 JVM

  4. JVM - 垃圾回收

    经过半个世纪的发展,今天的内存动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化” 时代,但当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时, 就必须对这些“自动化”的技术实施必要的监控和调节。

    2021/08/24 JVM

  5. JVM - 内存区域

    Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有 各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户 线程的启动和结束而建立和销毁。根据《Java 虚拟机规范》的规定,Java 虚拟机所管理的内存将会包括 以下几个运行时数据区域,如图所示:

    2021/08/23 JVM

  6. Java并发 - Java内存模型

    许多硬件部件都有这样一个特点 —— 硬件设计者引人一个部件是为了解决某些问题,然而这些部件自身又会 引人新的问题。为了解决这些新的问题,硬件设计者又引入了其他部件。因此,掌握这些部件之间的这种关系 有助于我们更好地理解相关部件。Java内存模型是对Java多线程程序的正确性进行推理的理论基础,了解 Java内存模型有助于编写正确的多线程程序以及进行代码复审。

    2021/08/23 concurrent

  7. Java并发 - 线程安全的设计方式

    本文从面向对象设计的角度出发介绍几种保障线程安全的常用技术。这些技术的使用通常可以使得在不必 借助锁的情况下保障线程安全,从而既避免锁可能导致的问题以及开销,又有利于提高系统的并发性并 简化代码。另外,本文还介绍了常用的线程安全的集合对象。

    2021/08/23 concurrent

  8. Java并发 - 线程停止

    线程停止:看似简单,实则不然。

    2021/08/23 concurrent

  9. Java并发 - 线程中断

    线程间协作还有一种常见的形式是,一个线程请求另外一个线程停止其正在执行的操作。比如,对于有些 比较耗时的任务,我们往往会采用专门的工作者线程来负责其执行,如果中途要取消(比如用户不想等了) 这类任务的执行,那么我们就需要借助Java 线程中断机制。

    2021/08/23 concurrent

  10. Java并发 - wait和notify

    在多线程编程中,一个线程因其执行目标动作所需的保护条件未满足而被暂停的过程就被称为等待(Wait)。 一个线程更新了系统的状态,使得其他线程所需的保护条件得以满足的时候唤醒那些被暂停的线程的过程就被称为通知(Notify)。 在Java平台中,Object.wait()/Object.wait(long)以 及Object.notify()/Object.notifyAll() 可用于实现等待和通知:Object.wait()的作用是使其执行线程被暂停(其生命周期状态变更为WAITING), 该方法可用来实现等待;Object.notify()的作用是唤醒一个被暂停的线程,调用该方法可实现通知。 相应地,Object.wait()的执行线程就被称为等待线程;Object.notify()的执行线程就被称为通知线程。 由于Object类是Java中任何对象的父类,因此使用Java中的任何对象都能够实现等待与通知。

    2021/08/22 concurrent