1. 每日3题是麦叔的面试系列专题之一,每天包括初级,中级,高级难度题目各一道。
  2. 每日3题,100天之后成为大牛!
  3. 如果有不明白的,给麦叔留言。

[Easy] 谈谈你对面向对象的理解?

思考30秒再往下翻...

面向对象是相当于面向过程而言的,面向过程语言是一种基于功能分析的,以算法为中心的程序设计方法,而面向对象是一种基于结构分析的,以数据为中心的程序设计思想。在面向对象语言中有一个很重要的东西,叫做类。面向对象有三大特性:封装、继承、多态。

[Normal] Python异步使用场景有哪些?

思考30秒再往下翻...

多线程和多进程的模型虽然解决了并发问题,但是系统不能无上限地增加线程。由于系统切换线程的开销也很大,所以,一旦线程数量过多,CPU的时间就花在线程切换上了,真正运行代码的时间就少了,结果导致性能严重下降。

由于我们要解决的问题是CPU高速执行能力和IO设备的龟速严重不匹配,多线程和多进程只是解决这一问题的一种方法。

另一种解决IO问题的方法是异步。当代码需要执行一个耗时的IO操作时,它只发出IO指令,并不等待IO结果,然后就去执行其他代码了。一段时间后,当IO返回结果时,再通知CPU进行处理。

异步使用场景:

  1. 不涉及共享资源,或对共享资源只读,即非互斥操作

  2. 没有时序上的严格关系

  3. 不需要原子操作,或可以通过其他方式控制原子性

  4. 常用于IO操作等耗时操作,因为比较影响客户体验和使用性能

  5. 不影响主线程逻辑

[Hard] 什么是僵尸进程和孤儿进程?怎么避免僵尸进程?

思考30秒再往下翻...

孤儿进程:父进程退出,子进程还在运行的这些子进程都是孤儿进程,孤儿进程将被init 进程(进程号为1)所收养,并由init 进程对他们完成状态收集工作。

僵尸进程:进程使用fork 创建子进程,如果子进程退出,而父进程并没有调用wait 或waitpid 获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中的这些进程是僵尸进程。

避免僵尸进程的方法:

1.fork 两次用孙子进程去完成子进程的任务

2.用wait()函数使父进程阻塞

3.使用信号量,在signal handler 中调用waitpid,这样父进程不用阻塞

import os, sys, time

pid = os.fork()getpid = os.getpid()getppid = os.getppid()

if pid == 0:    print("子进程 pid={}, getpid={}, getppid={}".format(pid, getpid, getppid))else:    print("主进程 pid={}, getpid={}, getppid={}".format(pid, getpid, getppid))    time.sleep(100)  # 在主进程结束sleep之前,子进程就会成为僵尸进程

mac系统可以通过命令ps -A -ostat,ppid,pid,command | grep -e '^[Zz]'查看僵尸进程

➜  ~ ps -A -ostat,ppid,pid,command | grep -e '^[Zz]'Z+   31741 31742 (Python)➜  ~

支持麦叔,请点在看,谢谢!

1进程 ppid_Python每日3题什么是僵尸进程和孤儿进程?相关推荐

  1. linux系统编程学习_(2)进程控制-- fork函数、exec函数族、回收子进程--孤儿进程僵尸进程、wait函数

    linux系统编程学习_(2)进程控制-- fork函数.exec函数族.回收子进程–孤儿进程僵尸进程.wait函数 进程控制 fork()函数 创建一个子进程. pid_t fork(void); ...

  2. linux基础知识——僵尸进城和孤儿进程

    1.什么是孤儿进程? \qquad父进程先于子进程结束,则子进程成为孤儿进程.父进程结束后,子进程的父进程由init进程接替. #include<stdio.h> #include< ...

  3. 孤儿进程与僵尸进程[总结]

    1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊.今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上 ...

  4. java 僵尸进程_孤儿进程与僵尸进程

    开发中,在io密集型的场景下,我们可以使用多进程(多线程/协成更nber)来提高任务的处理速度.这就需要主进程需要等待所有工作进程执行完毕后才可以去汇总结果后退出. 但如果不规范的编写程序,就可能导致 ...

  5. 什么是僵尸进程与孤儿进程

    1.什么是僵尸进程和孤儿进程: 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的,父进程永远无法预测子进程到底什么时候结束.当一个进程调用 exit 命 ...

  6. 【Linux系统编程】特殊进程之孤儿进程

    00. 目录 文章目录 00. 目录 01. 孤儿进程概述 02. 孤儿进程代码 03. 附录 01. 孤儿进程概述 父进程运行结束,但子进程还在运行的子进程就称为孤儿进程(Orphan Proces ...

  7. day34 并行并发、进程开启、僵尸及孤儿进程

    day34 并行并发.进程开启.僵尸及孤儿进程 1.并行与并发 什么是并行? 并行指的是多个进程同时被执行,是真正意义上的同时 什么是并发? 并发指的是多个程序看上去被同时执行,这是因为cpu在多个程 ...

  8. Linux 进程(一) 进程概念和进程状态(僵尸进程、孤儿进程、守护进程)

    进程的概念 进程状态 僵尸进程.孤儿进程.守护进程 进程的概念 程序:一系列有序的指令集合(就是我们写的代码) 进程:进程就是程序的一次执行,是系统进行资源分配和调度的独立单位. 程序是一个没有生命的 ...

  9. python僵尸进程和孤儿进程_python中多进程应用及僵尸进程、孤儿进程

    一.python如何使用多进程 创建子进程的方式 1.导入multiprocessing 中的Process类 实例化这个类 指定要执行的任务 target import os from multip ...

  10. 僵尸进程和孤儿进程 转载

    孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程.孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作. 僵尸进程:一个进程使用f ...

最新文章

  1. ES6新特性之Generator函数
  2. linux脚本格式模板,Linux Shell 常见的命令行格式简明总结
  3. mongodb 创建数据库权限账号,增删改查(基本操作)
  4. jpa调用mysql函数_Spring data jpa 调用存储过程处理返回参数及结果集(示例代码)
  5. 鲜花海报,文字与花儿碰上的时候,美妙
  6. 怎样从Mysql官网下载linux版本的mysql安装包
  7. AJAX ControlToolkit学习日志-AnimationExtender控件(3)
  8. Java8中的 Stream 那么彪悍,你知道它的原理是什么吗?
  9. Android UI设计之十自定义ListView,实现QQ空间阻尼下拉刷新和渐变菜单栏效果
  10. 科大讯飞语音开发包上手体验(1)
  11. Forcing close of thread
  12. 文化 宝藏 文物 古文
  13. A Weakly Supervised Convolutional Network for Change Segmentation and Classification
  14. SpringBoot整合MybatisPlus实战动态SQL,java定时器实现原理
  15. 【编程笔试】美团2021校招笔试-通用编程题第9场(附思路及C++代码)
  16. HTML 写代码流星雨
  17. 六种方法教你更好地使用小型WiFi摄像机
  18. Rewritecond介绍
  19. UE4:按键按下触发声音事件,离开位置声音停止
  20. k8s 部署pod到指定node

热门文章

  1. MediaChooser图库浏览器
  2. 孙鑫VC学习笔记:第八讲 逃跑按钮的巧妙实现和MFC中指针的获取
  3. 拓端tecdat|R软件SIR模型网络结构扩散过程模拟
  4. 拓端tecdat|使用Python和SAS Viya分析社交网络
  5. 拓端tecdat|R平方/相关性取决于预测变量的方差
  6. Java游戏程序设计教程 4.5打砖块游戏
  7. 【C/C++】各种数据类型在16位、32位和64位系统下所占字节差异
  8. oracle歸檔日誌,oracle歸檔日誌清理 | 學步園
  9. 利用caffe的Python接口生成prototxt文件
  10. Python 读取/存储 yaml 文件