八股速记-进程与线程的区别、URL从输入到页面展示发生了什么

进程与线程的区别

进程是系统的资源分配和调度的最小单位
线程是系统运算调度的最小单位
线程是进程的子任务
一个进程至少有一个线程,一个进程可以有多个线程

从资源消耗看

进程的创建和销毁消耗的资源比较大,因为每一个进程都有自己独立的内存空间,就算fork一个子进程,在写时复制的机制下,还是会提前复制一些内核区的信息
而线程由于共享同一块内存,创建和删除只需要消耗少量的上下文,因此资源消费更少

从通信来看

进程因为拥有自己独立的内存空间,所以进程间通信需要借助特殊的手段例如管道 共享内存 信号等方式
而线程由于是同一块内存,可以直接通过访问内存数据进行通信

从安全性

进程更安全,一个崩了另一个没影响
线程因为同一块内存,其他也会崩溃

URL从输入到页面展示发生了什么

  1. 用户接到浏览器请求,首先检查浏览器缓存里是否有该资源,有直接返回,没有再进行网络请求
  2. 在进行网络请求前要进行DNS解析,用于获取域名的IP地址。会从浏览器缓存,本地host文件,路由器缓存,DNS服务器,根DNS服务器去找IP。如果请求协议是HTTPS的话,还需要建立TLS链接
  3. 浏览器与服务器IP建立TCP连接。浏览器像服务器发出请求行,请求头的信息,并且把跟域名相关的cookie也加入请求头里面去,想服务器构建请求信息
  4. 服务器收到浏览器的请求信息,返回响应数据
  5. 浏览器解析响应头,如果状态吗是301 302,则重定向到其他地址,如果是字节流,则转到下载管理器,如果是HTML,会进入下一步渲染
  6. 浏览器解析HTML文件,创建DOM树,解析css样式计算,然后将css和dom树合并构建渲染树,最后布局和绘制渲染树,完成页面展示

malloc 和new的区别

malloc是c库函数,new是c++里面的关键字
malloc是从堆上分配的
new是从 free store上分配的
malloc申请出来返回的是一个void*,要用的话需要类型转换到对应对象的类型
new是直接返回对象的指针
free

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值