鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 大甲鱼D

如何设置在程序运行一定时间后停止

[复制链接]
发表于 2020-7-8 14:26:04 | 显示全部楼层
大甲鱼D 发表于 2020-7-8 13:56
好的,非常感谢!


这样可以的嘛? 我也不清楚有没达到你的需求
#!/usr/bin/env python
# -*- coding:utf-8 -*-
""""""
"""
现运行一个主算法程序,该算法在运行的过程中会多次调用另一个子算法程序。

主算法程序的运行时间是一定的,如设置为100秒,当到了100秒时可能子算法程序还没有运行结束,如何设置子算法程序立马停止运行,同时主算法程序也停止运行。

原本是想用time模块的函数在主算法程序中进行计时,确定程序运行的时间。但是存在一个问题:在进行已运行时间是否超过规定时间的判断时,已运行时间还未超过规定时间,

但是当转入子算法程序时,在子程序运行一半的时候,达到了规定时间,这种时候就需要立即停止子程序,但是需要等到子程序运行结束才能返回主程序进行时间的判断。

"""
from threading import Thread
from time import sleep,perf_counter

# 子线程
def thread1():
    for i in range(1,100):
        sleep(1)
        print(f'{Thread.getName(t1)}的第{i}次打印')

# 判断时间
def calc_time():
    while True:
        sleep(1)
        time = perf_counter()
        # 如果时间超过 5 秒 则退出循环
        if time >= 5:
            break

# 启动子线程
t1 = Thread(target=thread1)
t1.setName('子线程')



def main_thread():
    # 设置守护线程
    t1.setDaemon(True)
    t1.start()
    # 调用主线程
    calc_time()
    print('主线程终止,子线程也被杀死!')


if __name__ == '__main__':
    main_thread()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-8 14:47:22 | 显示全部楼层
Twilight6 发表于 2020-7-8 14:26
这样可以的嘛? 我也不清楚有没达到你的需求

非常感谢,我对多线程也不是非常了解,我先仔细看看你的模板
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-8 14:48:28 | 显示全部楼层
大甲鱼D 发表于 2020-7-8 14:47
非常感谢,我对多线程也不是非常了解,我先仔细看看你的模板

好,希望能达到你的要求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-10 21:35:06 | 显示全部楼层
回帖20yb,hxd你真的豪啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-10 22:43:40 | 显示全部楼层
?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-10 22:44:31 | 显示全部楼层
shen qing baai piao(pinyin)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-1 17:20:42 | 显示全部楼层
可以使用多线程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 17:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表