2019今日头条春招视频面试题

进程与线程的区别:进程是资源分配的最小单位,线程是程序执行的最小单位。进程是一个实体。每一个进程都有它自己的地址空间;进程是一个“执行中的程序”。进程有三个状态,就绪、运行和阻塞。一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间。
多线程模型与多进程模型
多线程创建速度快,方便高效的数据共享。多线程间可以共享同一虚拟地址空间,多进程间的数据共享需要用到共享内存、信号量等IPC技术。
多线程具有较轻的上下文切换开销,不用切换地址空间,不用更改寄存器,不用刷新TLB,提供非均质的服务,能有效降低简单任务被复杂任务压住的概率。
多线程模型:memcached。
多进程编程相对容易,通常不需要考虑锁和同步资源的问题。具有更强的容错性,比起多线程,一个进程崩溃了不会影响其他进程。有内核保障的隔离,数据和错误隔离;采用多进程架构的程序一般可以做到一定程度的自恢复。
nginx是以多进程的方式来工作的。
nginx采用一个master进程,多个woker进程的模式。nginx是异步非阻塞的。

  1. master进程主要负责收集、分发请求。当一个请求过来时,master拉起一个worker进程负责处理这个请求。
  2. master进程也要负责监控woker的状态,保证高可靠性
  3. woker进程一般设置为跟cpu核心数一致。nginx的woker进程跟apache不一样。apche的进程在同一时间只能处理一个请求,所以它会开很多个进程,几百甚至几千个。而nginx的woker进程在同一时间可以处理额请求数只受内存限制,因此可以处理多个请求。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值