Ⅰ 什么是进程
进程是一个程序运行的过程
Ⅱ 什么是程序
程序就是存在硬盘上面的一堆代码文件
py文件都是程序
Ⅲ 串行\并发\并行
串行:多个任务依次运行
并发:看起来像是同时运行的,本质上是一个cpu来回的切换
并行:多个任务是真正的同时在运行,只有多个cpu才有并行的概念
Ⅳ 进程的状态
就绪态
运行态
阻塞态
Ⅴ 优化程序效率的核心法则
降低IO操作(硬盘IO,网络IO)
IO操作优先级
能从内存取的不从硬盘,能从本地的不从网络上取
Ⅵ 程序调用的两种方式:
同步调用
同步调用是以中国阻塞式调用
可以形象理解为:考试,当一道题没做出来后,绝不会去做下一道题.即一段代码没有执行完毕,代码会一直等待,而不会执行下一段代码逻辑
异步调用
异步调用是一种非阻塞式的调用
可以形象理解为:考试,当这道题没有解决时,可以跳过这道题去做后面的题,当有思路时,再返回做这道题
Ⅶ 开启进程的两种方式
方式一:
正常启动:
# 开启进程的方式一:
import os, time
print(os.getpid(), 'python第22行代码进程>>>')
from multiprocessing import Process
def tank(n, tag):
print('%s>>>子进程' % tag)
time.sleep(n)
print('%s>>>子结束' % tag)
if __name__ == '__main__':
p1 = Process(target=tank, args=(2, '子进程111111>'))
p2 = Process(target=tank, args=(3, '子进程222222>'))
p3 = Process(target=tank, args=(4, '子进程333333>'))
p1.start()
p2.start()
p3.start()
print('>>>>主进程>>>>')
方式一
非人类启动方式
import os, time
from multiprocessing import Process
def tank(m, tag):
print('%s>>>子进程' % tag)
time.sleep(m)
print('%s>>>子结束' % tag)
if __name__ == '__main__':
res = 1
while True:
p1 = Process(target=tank, args=(500, f'紫禁城>>>>>{res}'))
res += 1
p1.start()
方式二
# 开启进程的方式二:
import time,os
from multiprocessing import Process
class Myprocess(Process):
def __init__(self,tag):
super().__init__()
self.tag = tag
# 函数提示信息 -> None
def run(self) -> None:
print('%s is running'%self.tag)
time.sleep(3)
print('%s is done'%self.tag)
if __name__ == '__main__':
p1 = Myprocess('进程11111')
p1.start()
print('主进程>>>>>')
网友评论