
正文
python函数停止运行 python停止执行
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
求助python多线程,执行到100多个停止了
python 线程 暂停, 恢复, 退出
我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦start后, 线程就属于失控状态. 不过, 我们可以自己实现这些. 一般的方法就是循环地判断一个标志位, 一旦标志位到达到预定的值, 就退出循环. 这样就能做到退出线程了. 但暂停和恢复线程就有点难了, 我一直也不清除有什么好的方法, 直到我看到threading中Event对象的wait方法的描述时.
wait([timeout])
Block until the internal flag is true. If the internal flag is true on entry, return immediately. Otherwise, block until another thread calls set() to set the flag to true, or until the optional timeout occurs.
阻塞, 直到内部的标志位为True时. 如果在内部的标志位在进入时为True时, 立即返回. 否则, 阻塞直到其他线程调用set()方法将标准位设为True, 或者到达了可选的timeout时间.
When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof).
This method returns the internal flag on exit, so it will always return True except if a timeout is given and the operation times out.
当给定了timeout参数且不为None, 它应该是一个浮点数,以秒为单位指定操作的超时(或是分数)。
此方法在退出时返回内部标志,因此除非给定了超时且操作超时,否则它将始终返回True。
Changed in version 2.7: Previously, the method always returned None.
2.7版本以前, 这个方法总会返回None.
br
利用wait的阻塞机制, 就能够实现暂停和恢复了, 再配合循环判断标识位, 就能实现退出了, 下面是代码示例:
#!/usr/bin/env python
# coding: utf-8
import threading
import time
class Job(threading.Thread):
def __init__(self, *args, **kwargs):
super(Job, self).__init__(*args, **kwargs)
self.__flag = threading.Event() # 用于暂停线程的标识
self.__flag.set() # 设置为True
self.__running = threading.Event() # 用于停止线程的标识
self.__running.set() # 将running设置为True
def run(self):
while self.__running.isSet():
self.__flag.wait() # 为True时立即返回, 为False时阻塞直到内部的标识位为True后返回
print time.time()
time.sleep(1)
def pause(self):
self.__flag.clear() # 设置为False, 让线程阻塞
def resume(self):
self.__flag.set() # 设置为True, 让线程停止阻塞
def stop(self):
self.__flag.set() # 将线程从暂停状态恢复, 如何已经暂停的话
self.__running.clear() # 设置为False
下面是测试代码:
a = Job()
a.start()
time.sleep(3)
a.pause()
time.sleep(3)
a.resume()
time.sleep(3)
a.pause()
time.sleep(2)
a.stop()
br
测试的结果:
这完成了暂停, 恢复和停止的功能. 但是这里有一个缺点: 无论是暂停还是停止, 都不是瞬时的, 必须等待run函数内部的运行到达标志位判断时才有效. 也就是说操作会滞后一次.
但是这有时也不一定是坏事. 如果run函数中涉及了文件操作或数据库操作等, 完整地运行一次后再退出, 反而能够执行剩余的资源释放操作的代码(例如各种close). 不会出现程序的文件操作符超出上限, 数据库连接未释放等尴尬的情况.
相关问答
Q1: 请教Python如何终止主程序
return break 都可以终止函数python函数停止运行的运行
exit(0) # 无错误退出
exit(1) # 有错误退出
这两条语句一般都会加在程序python函数停止运行的最后 因为exit是迫使系统去终止程序python函数停止运行的运行python函数停止运行!
Q2: pycharm定时停止运行
pycharm定时停止运行,可以通过以下方式解决:
PyCharm是一款开发工具,没有直接的定时停止运行功能。但是,你可以通过编写代码并使用相关的库或模块来实现定时停止的效果。
举个例子,如果你使用的是 Python,可以使用 time 库中的 sleep 函数来实现定时停止运行的功能。该函数可以让程序暂停一段时间,以便给你的程序设定一个定时器。
以下是一段示例代码:
import time
# 程序开始运行
start_time = time.time()
# 此处写你的代码
# 程序运行了5秒后停止
if time.time() - start_time = 5:
exit()
这段代码使用 time 库中的 time 函数记录程序开始运行的时间,并在 5 秒后通过 exit 函数结束程序的运行。这样就可以实现定时停止运行的功能。
Q3: python双击怎么说
python双击怎么说
71.新建一个简单的Python文件代码示例:print("hello world")2.将文件保存在本地的磁盘中3.如果此刻,双击该文件,在窗口中会出现一个窗口一闪而过,继续在文件中添加一个函数input(),可以解决以上信息代码示例:print("hello world")input("Tip: press Enter , close window!")4.保存以上文件,再次双击该文件运行5.此时,通过一个input(),就可以暂停Python程序运行,并等待用户的输入,按下键盘上的回车键(Enter),即可关闭窗口因为这是一个等待用户输入的命令,所以会有一个光标闪烁,等待用户输入,只有按下键盘上的回车键,才能关闭窗口。按下其他按键表示字符输入,最终还是要按下回车键才可以注意事项使用input()函数,可以实现暂停程序运行。
Q4: python里怎么终止程序的执行
quit() exit()
执行到此命令时python函数停止运行,程序终止。
如果是程序陷入死循环python函数停止运行,想强制结束,则按Ctrl + C。这个特别关键。
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。
在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。
扩展质料:
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。
然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大。
而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。
基于C的Python编译出的字节码文件,通常是.pyc格式。
除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。
参考资料:Python-百度百科
关于python函数停止运行和python停止执行的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








