进程方面笔记:主进程子进程/pid/fork/pdb调试/pep8规范

单核cpu :每次只执行一个程序
时间片轮转:多个程序同时执行,每次执行0.2ms(例子),时间切换很短,让外界感觉是程序都在同时执行
调度算法
优先级调度:系统会给不同程序不同的优先级,按照优先级执行程序
并发:指的是任务数大于cpu核数,通过操作系统的各种调度算法,实现多个任务“一起”执行(因为切换速度快,看上去是一起执行)
并行:指的是任务数小于等于cpu核数,即任务真的是一起执行

进程:正在运行的代码,是动态的
程序:编写完毕代码,没有执行,是静态的
pid :进程的id号
os.getpid:获取pid
os.getppid:获取pid
父进程中fork的返回值,就是刚刚创建出来的子进程的id
父进程返回值都是大于0,子进程返回值等于0
父子进程不确定谁先执行,调度算法不清楚
进程和进程之间,全局变量 数据不会共享  (缺点)

拓展:  while True   /换行   os.fork()   :俗称fork炸弹,程序崩溃内存飙升
fork :主进程结束了,子进程还继续执行,父亲不管儿子的事
process :主进程要等到子进程结束,它才结束



pdb调试 
启动时调试  python -m pub 123.py
交互时调试
import pdb    
pdb.run(“test(11,22)”)  #test调用函数
程序里面埋点
import pdb (先倒入模块)
ret=pdb.set_trace(把这句代码放到需要加断点那行代码的前面)
python 123.py  (命令输入的格式)
日志调试


l   : list 显示当前的代码
n : next 向下执行一行代码(快速执行完这一行代码,然后向下执行)
c :continue 继续执行代码
b :break 添加断点 (b 7 ,意思是在第7行添加一个断点)
clear :删除断点
s:step 进入到一个函数
p :print 打印一个变量的值 ( p a ; p b)
a:args 打印所有的形参数据 ( a )
q:quit 退出调试
r:return 快速执行到函数的最后一行

pep8规范
函数标准的编码格式
  1. 对准左括号
  2. 不对准左括号,但多加一层缩进,和后面的内容有区别
  3. 悬挂缩进必须加一层缩进

空格或tab键
  1. 空格是首选的缩紧方法
  2. Tab仅仅在已经使用tab缩进的代码中为了保持一致性而使用
  3. Python3 中不允许混合使用tab和空格缩进
  4. Python2 的包含tab和空格缩进的应该全部转为空格缩进
空行:函数和函数之间,隔一个空行;函数和类之间用两个空行
导入顺序:标准库,第三方,本地库
;分号的作用:a = 100; b = 200  

你可能感兴趣的:(python学习实践及问题记录)