互联网面试,Nginx 和Apache 的区别与!
Nginx 为什么在高并发处理优于httpd,为什么现在我们在高并发业务系统中,经常使用Nginx 而不是Apache 。
其实这需要你了解Apache 的三种工作模式。prefork ,worker 和event ,他们分别表示多进程,多线程,和异步I/O。
而Nginx的工作原理中则多了cache loader和cache manager ,当你明白了上述的工作模式的工作原理,那么就能够明白了。
具体分析可以参考下图,虽然不是很全面,但是用于面试吹Nginx 和Apache 的区别反正是足够了!
#互联网##程序员#
今天,一个毕业不久的同事,和我探讨了一下进程的地址空间的问题,他问我几个问题:
1. 进程的虚拟地址会和别的进程碰上吗?
2. 线程是独立的地址空间还是共享进程的地址空间。
3. 虚拟地址到底有啥作用?
其实,对于当初入职的我来说,对于这些概念,也是有些模糊,今天,我给他做了简单的解答:
对于问题1,我说进程之间是相互独立的地址空间,虚拟地址碰上很正常,但是物理地址是不一样的。
对于问题2,线程的地址空间是共享进程的,举个简单的例子,在进程里创建个全局变量,线程里是可以访问到的,也就是线程是可以找到全局变量的地址的。
对于问题3,虚拟地址是Linux内核管理内存的一种非常号的方式,有了虚拟地址的管理后,可以有效的管理进程的地址空间,因为,Linux内核会将虚拟地址通过页表的映射方式找到真正的物理内存,也就是说,即使两个进程的虚拟地址相同,也会被Linux内核映射不同的物理地址,这样大大减少了开发的工作量,开发人员只需要编写程序即可,内存分配交给操作系统。