如果我们需要把硬盘中的数据读入到内存中,CPU首先需要把数据从硬盘中读入到寄存器中,然后再写入到内存中。
如果我们需要把内存中的数据写入到硬盘中的时候,CPU首先需要先把数据从内存中读入道寄存器中,然后再写入到硬盘中。
这就有了一个问题。CPU在放下手头工作之前,必须先把手边的一摊子工作找个地方暂存起来,以便一会儿回来接着干。那么,手头这摊子工作存在哪儿呢?当然是存在内存里。
我们可以看到,运行栈这种“先进后出,后进先出”的特点,恰好就是“栈”这个数据结构的特点,因而得名“运行栈”。
操作系统进程有可能在硬盘上开辟一块空间,作为虚拟内存的备用空间,当内存卡的物理内存容量不够时,就把内存中一些暂时不用的内容暂存道硬盘上,然后把需要的内容导入腾出的内存空间。这种技术叫做虚拟内存置换。
我们常听到,32位操作系统或64位操作系统之类的说法。这里的32位或者64位的说法,指的就是CPU的工作台(寄存器)的位数。
64位操作系统的内存单元32位操作系统大了一倍,那么,原子操作能够容纳的数据尺寸也大了一倍。这意味着,在取用某些“长”数据类型的时候,CPU按照64位操作系统的规则,只需要取一次,就可以把数据取到寄存器中。而CPU按照32位操作系统的规则,却分两次把数据取到寄存器中。因此,从处理长数据类型的速度上来说,64位操作系统是优于32位操作系统的。
我们前面提到的32位操作系统和64位操作系统,其中的“位”的意思就是一个二进制数字。32位就表示一个位数为32的二进制数字,表达的最大数量是2的32次方。64位就表示一个位数为64的二进制数字,表达的最大数量是2的64次方。“位”这个词,对应的英文单词是“bit”。这个词经常被音译为“比特”。比如,数字信号的传输速率就经常被译成“比特率”。
现在,我们这里澄清一下“Bit”(位)和“Byte”(字节)之间的区别。
Bit就是一位二进制数字,要么是0,要么是1,只能表达两个状态。
Byte(字节)则是一个位数为8的二进制数字,能够表达的状态数量达到2的8次方,即256个状态。Byte和Bit之间足足差了2的7次方的倍数,即128倍。
分配在运行栈(stack)上的数据,其生命周期由过程调用来决定。分配在内存堆(heap)的数据,其生命周期超出了过程调用的范围。内存堆中的数据,需要程序员写代码显式释放,或者由系统自动回收。
两者之间的区别在于,进程拥有一份独立的进程空间,而线程没有。线程只能依附于进程存在。一个进程下面的多个线程,只能共享同一份进程空间。因此,线程和进程的主要区别,就在于共享资源方面。除此之外,两者的运行、调度,几乎都是一样的。
volatile关键字可以加在任何类型的变量前面,可以加在Object Reference类型(即对象)的前面,也可以加在简单类型(比如char、int、float、long、double等)的前面。当变量是Object Reference类型(对象)的时候,在前面加volatile是没有意义的。因为对象的赋值只是一种Object Reference(内存地址)的赋值,并不引起对象内部结构数据的任何变化。而且,Object Reference的赋值,通常都是不需要同步的原子操作。
一般来讲,volatile关键字只对long、double等长类型才有意义。因为,短类型的操作基本上都是原子操作。而原子操作是一次操作就完成的,不需要分多次操作,因此也不需要进行同步处理。
我们只需要学习和思考“同步锁加在代码段上”的线程同步模型。
synchronized(同步锁) {
// 访问共享资源、需要同步的代码段
}
其中“同步锁”是什么呢?就是一个Object Reference。任何一个Java对象,或者说,任何一个Object Reference,都可以对应一个同步锁。换句话说,任何一个Java对象实例,都可以被synchronized关键字包裹起来,承担起同步锁的任务。
你不一定要把同步锁声明为static或者public,但是你一定要保证相关的同步代码之间,一定要使用同一个同步锁。
锁的粒度越小越好,不要直接放在方法前面偷懒!
分享到:
相关推荐
知识点: 1. 机器设备日常维护保养记录的目的和意义 2. 机器设备日常维护保养记录的内容和结构 3. 机器设备日常维护保养记录的应用和分析 4. 机器设备日常维护保养记录在设备管理中的重要性 5. 机器设备日常维护...
下面将详细解释记录表中的各个关键知识点。 1. 接零接地保护系统: - 工作接地:确保电力系统的正常运行,降低设备的对地电压。 - 重复接地:增加系统安全性,减少触电风险,提高保护零线的可靠性。 - 保护零线...
以下是对该记录表中涉及知识点的详细解释: 1. **平安阀**:是锅炉的重要安全装置,负责在锅炉内部压力超过设定值时自动开启,释放蒸汽以防止爆炸。检查时需确认其是否完整可靠,能正常工作。 2. **压力表**:用于...
### 知识点二:日常运行记录表的作用 #### 1. 数据记录的意义 - **合规性**:符合当地环保法规要求,证明餐饮单位已采取措施控制油烟排放。 - **维护依据**:记录设备运行状况,为定期维护提供数据支持。 - **问题...
【标题】中的“蓝桥杯(Python)相关知识点记录”是指一种编程竞赛,蓝桥杯是国内知名的编程竞赛之一,旨在提升参赛者在信息技术领域的实践能力和创新能力。Python是比赛中的主要编程语言之一,它以其简洁易读的语法...
以下是对这些记录表中涉及知识点的详细解释: 1. **防火检查巡查**:防火检查巡查是预防火灾的重要措施,包括对校园内的监控设备、疏散通道、安全出口、安全指示标识、灭火器材和消防栓等关键设施的定期检查,以...
地下雨、污水井管清理疏通记录管理文档知识点 知识点1:物业管理文档的重要性 在物业管理中,记录和文档是至关重要的。文档可以作为物业管理的依据和参考,对于物业的日常管理和维护起着重要作用。本文档《地下雨...
#### 标题解析与知识点提炼: **标题**:“学生日常行为表现记录文稿表.doc”表明这是一个用于记录学生日常行为表现的电子表格文档。这份文档旨在系统化地跟踪学生在学习、纪律、参与度等多方面的行为变化,为教师、...
以下是对该记录表涉及的关键知识点的详细解释: 1. **清洁与消毒**: - 地面、墙面和物体表面的清洁与消毒是每日的基本任务,需保持清洁干燥,并使用指定浓度的消毒液。通常使用400mg/L~700mg/L的有效氯含氯消毒...
这份“学校日常垃圾清运记录表”主要包括以下几个关键知识点: 1. **序号**:这是用来唯一标识每一次垃圾清运活动的编号,便于管理和追溯。通过序号,可以系统地排列和查找历史记录。 2. **日期**:记录每次垃圾...
从提供的文件信息来看,标题为“车辆日常检查记录表.pdf”,描述中...但是,从教育的角度来看,上述关于车辆日常检查记录的知识点,可以作为教育培训课程或者教材中的重要内容,帮助相关人员掌握车辆管理的正确方法。
以下是对记录表中涉及的几个关键知识点的详细解释: 1. **消毒频率与方法**: - 地面、墙面和物体表面:每日至少消毒一次,遇到明显污染时需立即进行去污和消毒。推荐使用400mg/L~700mg/L有效氯的含氯消毒液,作用...
塔吊日常检查保养记录表知识点大全 在塔吊的日常检查和保养中,需要对塔吊的各个部件进行检查和记录,以确保塔吊的正常运作和安全使用。以下是塔吊日常检查保养记录表中的知识点: 一、塔吊的基本组成部分 塔吊是...
以下将详细解释设备日常维修保养的一些关键知识点,并结合提供的设备日常维修保养记录表进行说明。 1. **设备检查与维护周期**: - 记录表中的日期栏表示了设备的保养频率,通常设备保养按照日、周、月等周期进行...
以下是对【风机组日常巡检记录表】中的主要知识点的详细说明: 1. 工具准备:巡检过程中需要携带一系列工器具,如安全帽、风机专用安全带、逃生器、绝缘防滑鞋、专业工作服、棉质抹布、听针、测振仪、试电笔等。...
不过,我可以根据标题《机械设备日常检查记录表.pdf》和描述《机械设备日常检查记录表.pdf》中提及的概念来构建相关的知识点。考虑到文档的标题和描述提到了“机械设备”和“日常检查记录表”,以下是关于这些内容的...
通过这些知识点,我们可以了解到设备日常维修保养记录表的具体应用,它对于设备的正常运行和企业的生产效率具有不可忽视的作用。企业应当注重设备的维护保养,这不仅是预防性维护的体现,更是安全生产和保障产品质量...
很遗憾,所提供的文件信息【标题】、【描述】和【部分内容】并没有给出具体的科学知识点,而是一串数字序列,这无法直接转换为具体的教学内容。因此,我无法按照您的要求提供详细的知识点解释。如果您能够提供具体的...
以下是关于安全生产日常检查及隐患排查的一些核心知识点: 1. **检查制度**:建立完善的安全生产检查制度,包括定期检查、专项检查、随机抽查等多种形式,确保全面覆盖各个部门、岗位和环节。 2. **检查内容**:...
通过以上知识点的详细解析,我们可以看出双体系日常隐患排查记录表旨在通过对各个作业环节的监控,确保企业安全操作规程得以落实,预防安全事故的发生,保障员工的生命安全和企业的生产秩序。定期进行这样的排查并...