春招面试经验系列(一)菜鸟网络

14 篇文章 0 订阅
13 篇文章 0 订阅

菜鸟网络

一、线程和进程的概念和区别,在Windows和linux上的区别?

概念上:(进程)具有一定独立功能的程序关于某个数据集合上的一次运行活动,是应用程序的一个实例,进程是系统进行资源分配和调度的一个独立单位。进程之间无法进行资源共享

(线程)是进程的一个实体,是CPU调度和分派的基本单位。基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(程序计数器和虚拟机栈),但是它与同属一个进程的其他的线程共享进程所拥有的全部资源。线程是一个更接近执行体的概念。

两者的区别:

  • 操作系统资源管理方式:进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响。而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。多进程的程序比多线程的程序健壮,但在进程切换时,耗费资源较大。
  • 一个程序至少有一个进程,一个进程至少有一个线程
  • 线程的划分都小于进程,使得多线程程序的并发性高。
  • 线程在执行过程中与进程还是有区别的,每个独立的线程有一个程序运行的入口,顺序执行序列和程序出口。但是线程不能够独立执行,必须依存应用程序中,由应用程序提供多个线程执行控制。
  • 逻辑角度上看,多线程的意义在于在一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程做多个独立的应用,来实现进程的调度和管理以及资源分配,这就是进程和线程的主要区别
  • 优缺点:线程执行开销小,但不利于资源的管理和保护,而进程相反。进程可以进行跨机器迁移。

windows和linux上的区别:

Linux只有进程的说法,没有线程的概念。windows的线程相当于linux的进程,windows里面同一个进程各个线程之间是共享数据的,而linux不是。传统从Unix也支持线程的概念,但是一个进程只有一个线程。

二、栈、堆和队列的区别是什么,用过哪些?

栈:栈是限定只能在表的一端进行插入和删除的线性表。(先进后出)

堆:(也叫作优先队列)是一颗完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(小于)两个子节点的值(分别称为大顶堆和小顶堆)

队列:限定只能在表的一端进行插入和在另一端进行删除操作的线性表。(先进先出)

使用场景:浏览器的后退功能就是典型的栈应用。魔兽世界游戏登陆的时候就是典型的队列使用场景。

三、二叉树的定义?在哪里用过?

二叉树是有限个元素的集合。二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”。

用过二叉搜索树,在knn,查找数据时。

四、OSI七层是哪七层?IP和TCP分别在哪一层?

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

TCP和UDP在传输层、IP协议在网络层。

五、TCP与UDP的区别?

TCP即传输控制协议,UDP即用户数据报协议,区别主要有:

1、TCP是面向连接的,发送数据之前需要建立连接,UDP协议是无连接的,发送数据之前不需要建立连接。

2、TCP协议提供可靠的传输服务,UDP协议提供不可靠的传输服务。

3、TCP发送数据大小会受发送窗口、接受窗口及MSS(最大报文段)限制,因此会分为多段发送;UDP发送数据大小即为数据本身大小。

4、TCP有众多反馈机制和附加机制,而UDP没有。

5、TCP传输速度较慢,UDP传输速度较快。

总之:TCP是面向连接的、提供可靠传输的、传播速度较慢的协议,适合文件下载等传输任务。UDP是无连接的、不可靠的、但传输速度较快,适合面向流媒体等传输速度较快的任务。

六、TCP三次握手和四次握手。

三次握手:(三次握手是TCP建立连接的过程)客户机发起请求,然后服务机接受到请求后,服务机向客户机返回一个确认信号,确认是否是客户机发出的请求,最后客户机收到确认请求后发出回复,这样就建立了连接。

四次握手:(四次握手是TCP断开连接的过程)客户机发起中断请求报文FIN,服务机收到请求后回复给客户端一个ACK,此时客户端进入等待状态,当服务机确认ACK数据发送完,则向客户端发送FIN报文,客户端收到FIN报文后,给服务端发送ACK,然后进入等待状态,如果一段时间(2MSL)后没有收到回复,则证明服务机已经关闭,所以此时客户机也正常关闭。

七、菜鸟分仓比赛的情况?

最开始采用回归的方法,发现效果不好,就采用了指数平滑算法,进行预测,把地点分成了三中类型,一种是平滑型,一种是递增型,一种是递减型。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值