新状态:进程正在被创建
就绪态:运行的条件都已准备,正在等在cpu执行
执行态:cpu正在执行其功能
等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待态
终止:进程已经完成或被迫终止。
import time
print('同学们上课啦') # # 程序开始,运行状态
name = input('输入你的姓名:') # 用户输入,进入阻塞
print(name) # 运行状态
time.sleep(2) # 睡眠2秒,阻塞状态
print('同学们下课啦') # 运行状态
判断进程是否存活:
from multiprocessing import Process
def sing(name1): # 可以不带参数
print(f'{name1}唱歌唱出了鬼叫声')
def dance(name2):
print(f'{name2}跳舞跳出了国际范')
if __name__ == '__main__': # 直接执行文件,如果是当作模块导入,__name__ = 模块名
p1 = Process(target=sing,args=('lucy',))
p2 = Process(target=dance,args=('lily',)) #args为元组形式,一个元素时要加逗号
p1.start() #启动子进程实例p1,这个时候p1已启动(在此处为就绪状态)
# p1.join() #p1进程阻塞,主线程等待p1执行完
p2.start()
# p2.join() #p2进程阻塞,主线程等待p2执行完
#默认先执行主进程语句,加入阻塞join,则主进程会等待子进程执行完再执行。
print('p1的状态是:', p1.is_alive()) # cpu先调用主进程,即先执行主进程这条语句。此时子进程p1还未执行完,所以为True
print('p2的状态是:', p2.is_alive()) # cpu先调用主进程
运行结果:
p1的状态是: True
p2的状态是: True
lucy唱歌唱出了鬼叫声
lily跳舞跳出了国际范
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!