G1之前收集器的特点 年轻代和老年代是各自独立且连续的内存块 年轻代收集器使用 eden + S0 + S1 进行复制算法 老年代收集必须扫描整个老年代区域 都是以尽可能的少而快速地执行 GC 为设计原则 G1 是什么 G1 是一种面向服务端的垃圾收集器,应用在多核处理器和大容量内存环境中,在实现高 ...
分类:
其他好文 时间:
2020-06-22 13:16:35
阅读次数:
60
全局异常 TaskScheduler.UnobservedTaskException += (e, args) =>{ MessageBox.Show("dddddddddddddddd"); }; 即便有个Task发生了未处理的异常,也不会立即触发这个事件,而是那个Task必须被GC回收时才会触发 ...
分类:
其他好文 时间:
2020-06-22 01:37:22
阅读次数:
111
#进程控制 进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。 ##如何实现进程控制? 用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。 这种不可被中断的操作即原子操作。 原语采用“关中断指令”和“开中断指令”实现. 学习 ...
分类:
系统相关 时间:
2020-06-22 01:20:06
阅读次数:
83
参考: https://www.cnblogs.com/fnlingnzb-learner/p/11022152.html https://www.cnblogs.com/csonezp/p/10011031.html https://ifeve.com/guava-source-cache/ ht ...
分类:
系统相关 时间:
2020-06-22 01:02:56
阅读次数:
61
在本节中,我们将学习和使用原型模式;这一节学习的原型模式也是创建型 模式的其中之一。再次复习一下:创建型 模式就是描述如何去更好的创建一个对象。 我们都知道,在JAVA 语言中。使用new 关键字创建一个新对象。将新的对象放到堆内存 里面。当然,这个内存肯定是有大小限制的,况且,JAVA 不同于C语 ...
分类:
编程语言 时间:
2020-06-21 23:29:18
阅读次数:
84
操作系统的五大基本功能: 进程/线程管理(CPU管理):进程/线程状态、控制、同步互斥、通信、调度... 存储管理:分配回收、地址转换、存储保护、地址扩充... 文件管理:文件目录、文件操作、磁盘空间、文件存取控制... 设备管理:设备驱动、分配回收、缓冲技术... 用户接口:系统命令、缓冲接口.. ...
分类:
其他好文 时间:
2020-06-21 19:24:51
阅读次数:
60
上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点和安全区域等。 因为各个平台的虚拟机操作内存的方法各不相同,且牵扯大量的程序实现细节,所以本文不会过多的讨论算法的具体实现,只会介绍几种算法思想及发展 ...
分类:
编程语言 时间:
2020-06-21 18:04:15
阅读次数:
59
如果垃圾回收的算法属于内存回收的方法论的话,那本文讨论的垃圾回收器就属于内存回收的具体实现。 因为不同的厂商(IBM、Oracle),实现的垃圾回收器各不相同,而本文要讨论的是 Oracle 的 HotSpot 虚拟机所使用的垃圾回收器。 常用垃圾回收器,如下图所示: 新生代回收器:Serial、P ...
分类:
编程语言 时间:
2020-06-21 18:01:45
阅读次数:
62
前面介绍了如何去识别和标记垃圾,现在主要介绍,如何去回收(处理、删除)这些垃圾? 你也许会想,找到了直接删掉不就行了吗? 恭喜你,已经学会了一个很重要的算法。 标记-清除(Mark-Sweep) 标记-清除算法,主要分为两个步骤,标记 和 清除。标记,就使用之前说过的 可达性分析算法,即可进行标记。 ...
分类:
编程语言 时间:
2020-06-21 16:22:51
阅读次数:
61
Executor 框架是一个根据一组执行策略调用,调度,执行和控制的异步任务的框 架。 无限制的创建线程会引起应用程序内存溢出。所以创建一个线程池是个更好的的 解决方案,因为可以限制线程的数量并且可以回收再利用这些线程。利用 Executors 框架可以非常方便的创建一个线程池。 ...
分类:
其他好文 时间:
2020-06-21 15:44:44
阅读次数:
50