1 2 3 下一页 记得刚学多线程的时候, 碰到一个结构:
从这个结构中可以基本洞察多线程的基本原理: 1、在切换到另一个线程之前, 先把当前线程在寄存器中的数据保存在这个结构; 2、重新切回线程时, 再才这个结构中读出相关数据到寄存器, 从而继续运行... 压栈、出栈也是类似的道理. 一个程序包含若干子程序, 子程序中一般会有自己的参数或局部变量. 在执行这个子程序前, 应该先把寄存器中的相关数据暂存一下(子程序也要使用寄存器), 这就是所谓的压栈(PUSH); 等子程序执行完毕, 再把之前压到栈中的数据取回(而让程序继续执行), 这就是所谓的出栈(POP). 什么是 "栈"? 程序把内存划分了若干区域, 其中有 "全局数据区" 和 "局部数据区". 全局数据所在的位置叫 "堆"; 局部数据(局部变量、局部常量、子程序参数)所在的位置叫 "栈", 也叫 "堆栈".(责任编辑:admin) |