多线程与多进程问题

1、描述进程和线程的区别(面试很常问的问题)。

答案:进程是程序的一次执行。线程可以理解为进程中执行的一段程序片段。在一个多任务环境中下面的概念可以帮助我们理解两者间的区别。进程是独立的,这表现在内存空间、上下文环境,线程运行在进程空间内。一般来讲(不使用特殊技术),进程无法突破进程边界存取其它进程内的存储空间,而线程由于处于进程进程空间内,所以同一进程所产生的线程共享同一内存空间。同一进程中的两段代码不能够同时执行,除非引入线程。线程属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程和线程都可以有优先级。

2、在网络编程中设计并发服务器,使用多进程架构和使用多线程架构有什么区别。
解析:
进程:子进程是父进程的复制品。子进程获得父进程数据空间,堆和栈的复制品。
线程:相对于进程而言,线程是一个更加接近于执行体的概念,它可以同进程的其它线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和相应时间。
线程和进程使用上各有优缺点,线程执行开销小,但不利于资源管理和保护;而进程正好相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

答案:用多进程时每个进程都有自己的地址空间,线程则共享地址空间。所有其它区别都由此而来。速度:线程产生的速度快,线程间的通信快,线程间的切换快等,因为他们在同一个地址空间内。资源利用率:线程的资源利用率比较好也是因为它们在同一个地址空间内。同步问题:线程使用公共变量/内存时需要使用同步机制,还是因为它们在同一个地址空间内。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值