线程有堆么?堆栈和堆和栈什么区别?
我印象中只有堆和栈,什么是堆栈?这两个是一个词组!~~~~~它有堆的特性?还是有栈的特性?还是两个都有!~~...
我印象中只有堆和栈,什么是堆栈?这两个是一个词组!~~~~~它有堆的特性?还是有栈的特性?还是两个都有!~~
展开
展开全部
1、堆栈名称释疑
维基百科,(https://zh.wikipedia.org/wiki/%E5%A0%86%E6%A0%88)
堆栈(英文:stack),也可直接称栈。台湾作堆叠,在计算机科学中,是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端(称为堆栈顶端指标,英文为top)进行加入资料(push)和输出资料(pop)的运算。另外堆栈也可以用一维阵列或连结串行的形式来完成。堆栈的另外一个相对的操作方式称为伫列。由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
百度百科,(http://baike.baidu.com/view/93201.htm)
在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆,顺序随意。栈,后进先出(Last-In/First-Out)。
可以发现,“堆栈”之所以出现,是因为早期翻译不严谨的缘故。两种数据类型。
2、线程与堆、栈
与线程“绑定”的是栈,用于存储自动变量。每一个线程建立的时候,都会新建一个默认栈与之配合。堆则是通常与进程相关,用于存储全局性的变量,进程建立的时候,会建立默认堆。于是,每一个线程都有自己的栈,然后访问共同的堆。当然,你可以通过OsApi建立其他堆栈。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询