求科普:TCP/IP协议栈,技术栈,函数栈等等各种栈到底是在说什么?

kybetter
  • 483

以下是摘抄的例句:
“每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈)”
“七层负载均衡工作在OSI模型的应用层,因为它需要解析应用层流量,所以七层负载均衡在接到客户端的流量以后,还需要一个完整的TCP/IP协议栈。”
……
我在看一些技术文章的时候经常会被这些词语搞懵圈,还请诸位师兄们帮我科普一下。

这些文章里面所说的各种栈,应该不是指数据结构里面的栈和计算机内存里面的栈内存,还来个后进先出吧?

回复
阅读 2.2k
4 个回答
✓ 已被采纳

一个一个解释吧

TCP/IP协议栈,指的是TCP/IP中的四层协议栈,就像计算机网络课程里面的OSI七层模型一样,具体的可以参考百度。

技术栈指的是一个项目用到的一系列技术体系(编程领域的科技产品的集合),比如说百度里面用LNMP用的多,新浪微博则是php,redis等技术用的多,淘宝则是JAVA等用的多。

函数栈指的是从main函数开始,一步一步调用各种模块,各种模块里面又调用其他依赖模块,一层一层的嵌套调用,最终调用完了又要一层一层的return回main函数,这个执行流程如果用图形来表示就很像数据结构里面的栈结构。

这三个栈都是不同的含义,建议查询新华字典了解更多详情。

比方说招聘要求里的需要的技术栈,全栈,我觉得这里说的“栈”有点类似于机器猫的口袋,里面有好多好东西,掏出来就能用。

函数栈就是指的栈内存那个栈。。
其他的是抽象意义的栈,就是一层层的意思。。。

函数栈,是说函数内部的局部变量在内存中存储为栈的数据结构,函数调用后这个数据结构会被销毁。
编程语言内部的变量存储大概分为两种数据类型,堆内存和栈内存。函数栈是栈内存使用的一个例子,此外还有其他使用栈的例子,比如每个线程都有一块专有的栈空间。
TCP/IP协议栈跟内存就扯不上关系了,这个栈可以理解为栈是指一个集合,类似于我们常说的技术栈,是一个道理。

宣传栏