pyhton3 进程(猴子搬玉米)
本帖最后由 Cool_Breeze 于 2021-1-19 17:25 编辑主进程就收任务,不管前面任务是否完成,都将其关闭,然后新开进程处理当前任务!(像似猴子搬玉米)
不知道在写啥!思路不清晰。(本来想写线程的,但是好像线程无法中途终止,有知道的大佬请提点一下!)
执行结果:
dict_keys([])
输入 q 退出主程序!
请输入运行程序名:a
dict_keys(['a'])
输入 q 退出主程序!
请输入运行程序名:程序 a 即将在 10 秒后停止
程序 a 即将在 9 秒后停止
程序 a 即将在 8 秒后停止
d程序 a 即将在 7 秒后停止
========================
程序 a 已停止
========================
dict_keys(['d'])
输入 q 退出主程序!
请输入运行程序名:程序 d 即将在 10 秒后停止
程序 d 即将在 9 秒后停止
程序 d 即将在 8 秒后停止
c
========================
程序 d 已停止
========================
dict_keys(['c'])
输入 q 退出主程序!
请输入运行程序名:程序 c 即将在 10 秒后停止
程序 c 即将在 9 秒后停止
程序 c 即将在 8 秒后停止
程序 c 即将在 7 秒后停止
程序 c 即将在 6 秒后停止
程序 c 即将在 5 秒后停止
程序 c 即将在 4 秒后停止
程序 c 即将在 3 秒后停止
c
****************************
程序 c 正在运行中...
****************************
dict_keys(['c'])
输入 q 退出主程序!
请输入运行程序名:程序 c 即将在 2 秒后停止
程序 c 即将在 1 秒后停止
# coding=utf-8
# python 3.7.9
import multiprocessing
import time
class myProcess(multiprocessing.Process): # 单继承
def __init__(self, name, n):
super().__init__() # 初始化进程
self.name = name
self.n = n
self.daemon = True # 跟随主进程结束
def run(self):
while self.n:
print(f'程序 {self.name} 即将在 {self.n} 秒后停止')
self.n -= 1
time.sleep(0.6)
exit(0)
def kill(self): # 重写kill,添加一点内容
super().kill()
print('========================')
print(f'程序 {self.name} 已停止')
print('========================')
if __name__ == '__main__':
'''
输入程序名,启动程序(只能运行一个程序)
程序已在运行中,提示正在运行
程序不在运行中,停止前一个程序,然后在启动新程序
'''
pool = {}
while True:
print(pool.keys())
name = input('输入 q 退出主程序!\n请输入运行程序名:')
if name in pool.keys(): # 检查程序是否已在运行(不做任何事)
if pool.is_alive():
print('****************************')
print(f'程序 {name} 正在运行中...')
print('****************************')
else:
pool.pop(name)
pool.update({name:myProcess(name, 10)})
pool.start()
elif name == 'q': break # 退出主程序
else:
if len(pool) == 1: # 检查是否有一个进程在运行(有就结束它)
oldName = list(pool.keys())
if pool.is_alive(): # 检查进程是否存活(存活结束它)
pool.kill()
pool.pop(oldName)
pool.update({name:myProcess(name, 10)})
pool.start()
我觉得 我喝完酒之后 然后在看你代码 就可以告诉你怎么做。 但是我清醒的时候感觉 就有点困难 丶优雅 发表于 2021-1-19 16:52
我觉得 我喝完酒之后 然后在看你代码 就可以告诉你怎么做。 但是我清醒的时候感觉 就有点困难
给老哥看困了,我的我的! 学习了,谢谢楼主! 有点混乱,前段时间我也写了多任务的需求没写那么复杂,需要看我贴就ok
页:
[1]