Rumah > Soal Jawab > teks badan
以下是摘抄的例句:
“每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈)”
“七层负载均衡工作在OSI模型的应用层,因为它需要解析应用层流量,所以七层负载均衡在接到客户端的流量以后,还需要一个完整的TCP/IP协议栈。”
……
我在看一些技术文章的时候经常会被这些词语搞懵圈,还请诸位师兄们帮我科普一下。
这些文章里面所说的各种栈,应该不是指数据结构里面的栈和计算机内存里面的栈内存,还来个后进先出吧?
阿神2017-04-17 16:32:14
一个一个解释吧
TCP/IP协议栈,指的是TCP/IP中的四层协议栈,就像计算机网络课程里面的OSI七层模型一样,具体的可以参考百度。
技术栈指的是一个项目用到的一系列技术体系(编程领域的科技产品的集合),比如说百度里面用LNMP用的多,新浪微博则是php,redis等技术用的多,淘宝则是JAVA等用的多。
函数栈指的是从main函数开始,一步一步调用各种模块,各种模块里面又调用其他依赖模块,一层一层的嵌套调用,最终调用完了又要一层一层的return回main函数,这个执行流程如果用图形来表示就很像数据结构里面的栈结构。
这三个栈都是不同的含义,建议查询新华字典了解更多详情。
PHPz2017-04-17 16:32:14
函数栈,是说函数内部的局部变量在内存中存储为栈的数据结构,函数调用后这个数据结构会被销毁。
编程语言内部的变量存储大概分为两种数据类型,堆内存和栈内存。函数栈是栈内存使用的一个例子,此外还有其他使用栈的例子,比如每个线程都有一块专有的栈空间。
TCP/IP协议栈跟内存就扯不上关系了,这个栈可以理解为栈是指一个集合,类似于我们常说的技术栈,是一个道理。