Windows线程 1 Windows线程 Windows进程中可以执行代码的实体,Windows系统可以调度的执行代码.一个进程中至少有一个或多个线程. 每个线程是进程的一个任务分支. 2 线程的特点 2.1 每个线程有一个ID. 2.2 每个线程有自己的安全属性 2.3 每个线程有自己的内存栈. 3 进程和线程多任务 多进程实现的多任务: 由...
分类:
编程语言 时间:
2014-07-27 16:23:15
阅读次数:
404
以示例代码系统的讲述了三种内存损坏的情况: 全局内存、栈损坏及堆损坏, 以及它们产生的原因。...
分类:
其他好文 时间:
2014-07-21 11:43:14
阅读次数:
144
如果我们需要重复多次计算相同的问题,通常可以选择递归或者循环 递归的好处是代码简洁 但是递归也有明显的缺点:递归是由于函数调用自身,而函数调用是需要有时间和空间的消耗的。每一函数调用,都需要在内存栈中分配空间以保存参数,返回地址和临时变量,而且往栈中压入数据和弹出数据都需要时间。递归中有可能...
分类:
其他好文 时间:
2014-07-20 23:02:25
阅读次数:
326
构造方法:1、构造方法无返回值,函数名和类名必须一样;2、方法调用完之后,栈中原本为它分配的内存全部消失; 栈中的内存,方法调用完后立即消失;对应的堆中的内存需要等待垃圾回收机制;3、没有指定构造方法时,系统默认加上一个空的方法,类名 () { };命名规则:1、类名的首字母大写;2、方法名变量名....
分类:
其他好文 时间:
2014-07-03 19:39:38
阅读次数:
175
java 的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使...
分类:
编程语言 时间:
2014-07-03 09:22:32
阅读次数:
211
8086CPU出栈入栈都是以字为单位进行的。push ax 由一下两步完成1、SP=SP-22、将ax中的内容送入SS:SP指向的内存单元pop ax1、将SS:SP指向的内存单元中的内容送入ax2、SP=SP+2push 寄存器pop 寄存器push 段寄存器pop 段寄存器push 内存单元po...
分类:
其他好文 时间:
2014-07-02 00:52:34
阅读次数:
302
C# 中堆与栈的浅记
什么是堆和栈?
简言之,堆和栈是驻留在内存中的区域,它们的作用是帮助我们执行代码。在.Net Framework 环境下,当我们的代码执行时,内存中的堆和栈便存储了这些代码,并包含了代码执行所需要的全部信息。
这样说来还是有些抽象,那么,在堆和栈中究竟都保存了些什么呢?概括说来就是四类数据:...
分类:
其他好文 时间:
2014-07-01 07:32:00
阅读次数:
204
栈帧由下面几个元素组成:
返回地址:函数完成后要返回的程序内部地址
局部数据存储:为局部变量分配的内存
参数存储:为函数参数分配的内存
栈指针和基指针:运行时系统用来管理栈的指针
栈指针通常指向栈顶部。基指针通常存在并指向栈帧内部的地址,比如返回地址,用来协调访问栈帧内部的元素。这两个指针都不是C指针,他们是运行时系统管理程序栈的地址。...
分类:
编程语言 时间:
2014-06-22 16:42:42
阅读次数:
235
C语言的程序内存布局,从高到低依次为:栈区、堆区、未初始化数据区、初始化数据区、代码区。
一、栈区
由编译器自动管理,无需程序员手工控制。存放函数的参数值、局部变量的值等。栈区内容从高地址到低地址分配,从低地址到高地址存取。...
分类:
编程语言 时间:
2014-06-18 08:04:34
阅读次数:
219
通常基于递归实现的代码比基于循环实现的代码要简洁很多比如 二叉树遍历以及
二叉树的许多操作递归由于是函数调用自身,每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址以及临时变量而每个进程的栈容量是有限的,当递归调用的层级太多时,就会导致
调用栈溢出递归有时伴随大量重复的计算, 二叉树遍历的...
分类:
其他好文 时间:
2014-06-11 07:31:55
阅读次数:
187