首页 > 编程语言 > 详细

Python常考面试题

时间:2020-06-03 18:22:16      阅读:38      评论:0      收藏:0      [点我收藏+]

1、 多进程、多线程?

出现概率较高, 但是实际用处特别少

先将两个概念阐述一遍,再来找不同。

进程:一个程序的执行实例就是一个进程。 每一个进程提供执行程序的所有资源(进程的本质是所有资源的集合),一个进程有一个虚拟的地址空间、可执行的代码、操作系统的接口、安全的上下文(记录启动该进程的用户和权限等)、唯一的进程ID、环境变量、优先级别、最小和最大的工作空间(内存空间),还要有至少一个线程。每一个进程启动时候都会最下产生一个进程,即主线程 然后主线程会再创建其他的子线程。

线程:线程是操作系统能够进行运算调度的最小单位。他被包含在进程之中,是进程中的实际工作单位。一条线程指的是进程中的一个单一顺序的控制流,一个进程就可以并发多个线程,每条线程并行执行不同的任务,一个线程是一个execution context(执行上下文),即一个cpu执行时需要的一串指令。

找不同阶段:

  1. 同一个进程中的线程共享同一内存空间、数据,但是进程之间是独立的。
  2. 对主线程的修改可能会影响其他线程的行为, 但是父进程的修改(除了删除)不会影响其他子进程
  3. 线程是一个上下文的执行指令,而进程则是与运算相关的一簇资源
  4. 同一个进程的线程之间可以直接通信, 但是进程之间的交流需要借助于中间代理来实现
  5. 创建新的线程很容易,但是创建新的进程需要对父进程做一次复制
  6. 一个线程可以操作同一进程中的其他线程, 但是进程只能操邹其子进程
  7. 线程启动速度快, 进程启动速度慢(但是两者的运行速度没有可比性)
  8. 可以参考 这个 博客介绍的非常详细

 

 

Python常考面试题

原文:https://www.cnblogs.com/musl/p/13039105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!