![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机原理
文章平均质量分 79
大海梦想
为软件事业奋斗!
展开
-
Java中的定时器
一、Timer和TimerTaskTimer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。1. 使用schedule(TimerTask task, long delay, long period)延迟 delay 执行,并每隔period 执行一次public static void main(String[] ar原创 2021-06-28 17:53:31 · 737 阅读 · 0 评论 -
计算机的时间魔法(定时器)
5月组内月度分享的时候,大家讨论到了在Java里时间轮是靠什么驱动运作的。这引发了我对时间驱动力的探索。这个世界本质上就是时间驱动的,这是自然的真实反映。试想如果时间停滞,所有的动作也都会暂停。计算机系统本质上也是时间驱动的。计算机系统的时间概念是由电子振荡器的反复振荡产生的。我们从计算机最底层的硬件讲起,再到操作系统,再到Java,一步一步探究时间驱动力的奥秘。由于篇幅太长…………所以我们分几篇来讲。链接链接链接链接链接...原创 2021-06-28 18:02:34 · 370 阅读 · 0 评论 -
计算机的时间魔法(定时器)——总结
从硬件层面到Java层面,理顺整个流程是一件很爽的事情,阅读这些源码让你有一种醍醐灌顶的感觉。心中有数仿佛自己也能写个操作系统了的自信(错觉)。为了大家更好的回顾整个流程,我用图示的方式从头到尾整理了一遍,希望能够对大家有所帮助。整篇文章都是基于我自己的理解来做的,难免有些错误、疏漏,还请大家指正。最后的最后,还有一个相对哲学的问题,振荡器是通过电来驱动的。如果时间停止,振荡器还能工作吗?...原创 2021-06-28 18:01:04 · 157 阅读 · 1 评论 -
从Java Thread到OS Thread
我们从Java的线程开始,分析一些多年以来的疑问,到底Java的Thread和系统的Thread有什么关系呢?一、线程的表现形式1. 从Thread开始我们从Thread类看起。在Java里,Thread类就用来表示一条线程。但很明显,Java的Thread只是在应用层面的表象,如何真正创建一条线程,是在JVM中完成的。public class Thread implements Runnable { // ... public synchronized void star原创 2021-06-28 17:49:31 · 561 阅读 · 0 评论 -
操作系统对定时器的应用
到了在操作系统层面,可以依靠硬件产生的定时器中断做很多事情,同时,操作系统的定时器怎么实现呢?我们来分析一下。1. 硬件定时器现在的Linux对时间的管理是很复杂的,大体可以分为高精度时钟和低精度时钟。两者互不兼容。在 Linux 2.6.16 之前,内核只支持低精度时钟。内核围绕着 tick 时钟来实现所有的时间相关功能。tick 是一个定期触发的中断,一般由 PIT 提供,大概 10ms 触发一次 (100HZ),精度比较低。如果频率设置的太高,就会严重影响系统性能。(1) tick以 x86原创 2021-06-28 17:40:33 · 1809 阅读 · 0 评论 -
计算机的定时器实现(下)
(在上篇中,我们通过简单的8051芯片,初步窥探了一下定时器的原理和如何驱动。这篇我们来探讨更实际的x86架构)5. x86的定时器实现(1)发展历程x86架构已经有几十年的历史了,随着科技不断进步,定时器的实现也是经历了几个阶段的发展的。PICIntel的传奇中断控制芯片8259在1976年就被用在8085系列产品中。PC在1981年出生时借鉴了这种思想,8259的升级版8259A被用于中断控制,而其统治PC长达近10年,直到486电脑的诞生。APIC80486DX在1990年上市,其原创 2021-06-28 17:35:00 · 499 阅读 · 1 评论 -
计算机的定时器实现(上)
1. 计算机基本组成冯·诺依曼体系架构下的计算机,是由运算器、控制器和存储器组成的。现代计算机通常还会有外部存储器和各种外围的I/O设备组成。限于篇幅,我们只能简单的聊一聊运算器、控制器和存储器,不敢深入原理,否则就是另外一个专题了。大家如果有兴趣,我们后面可以再搞一个专题专门来聊一聊。我以前上学的时候,听过一种很奇怪的说法,说是冯·诺依曼体系就是二进制计算机。其实冯·诺依曼跟二进制没啥关系,真要说二进制体系,那是香农的功劳。(1)运算器和控制器大家都知道现在这俩东西合起来被称为了CPU。因为他原创 2021-06-28 17:28:29 · 1349 阅读 · 2 评论