当前位置: 首页 > 面试题库 >

带有事件对象的Python线程

邵阳德
2023-03-14
问题内容

我已经看到很多在类中使用Threads的Python脚本,其中许多使用threading.Event()。例如:

class TimerClass(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.event = threading.Event()

    def run(self):
        while not self.event.is_set():
            print "something"
            self.event.wait(120)

while循环中,为什​​么不设置条件就检查条件self.event


问题答案:

因为其他人会设置它。

通常,您在应用程序的一部分中启动一个线程,然后继续执行您所做的任何事情:

thread = TimerClass()
thread.start()
# Do your stuff

当您执行操作时,线程会执行操作。如果要终止线程,则只需调用:

thread.event.set()

并且线程将停止。

因此,答案是:在这种情况下,事件不用于从线程对象本身内部控制线程。它用于从外部(从持有对线程的引用的对象)控制线程。



 类似资料:
  • 在消息Handlers中接收的对象是一个Message。 该消息的body对应于发送或发布的对象。 消息标头有headers。

  • var elem = document.getElementById('div1'); var clickHandler = function(event){ // TO DO } elem.addEventListener('click',clickHandler,false); event对象包含很多信息 var elem = document.getElementById('div1')

  • 8.3.1 事件和事件对象 事件是针对应用程序所发生的事情,并且需要应用程序对它做出响应或进行处理。Tkinter中定义了很多种事件,足以支持常见的 GUI 应用程序开发。 Tkinter 事件可以用特定形式的字符串来描述,称为事件模式。事件模式的一般形式是: <modifier-type-detail> 其中类型符 type 指定事件类型,最常用的类型有分别表示鼠标事件和键盘事件的 Butto

  • Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。(W3C) 事件对象会在事件被触发时获得,对象包含了当前事件的一些信息,如点击事件可以获取到点击的位置,键盘输入事件可以获取到按下的键。 1. 获取事件对象 在给 DOM 节点绑定事件时,需要传递一个事件处理器,其本质上是个函数,在事件触发时被调用。 在事件处理器被调用时,默认就会传递一个参数,这

  • 在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。包括导致事件的元素、事件的类型以及其他与特定事件相关的信息。例如,鼠标操作导致的事件对象中,会包含鼠标位置的信息,而键盘操作导致的事件对象中,会包含与按下的键有关的信息。所有浏览器都支持event 对象,但支持方式不同。 13.3.1 DOM中的事件对象兼容DOM 的浏览器会将一个event 对象传入到

  • 事件 事件:用户与浏览器特定的交互瞬间。 事件对象 在触发DOM上的事件时,会产生一个事件对象Event,它包含了与事件相关的所有信息。如:事件的类型、导致事件的元素(当前元素)、以及其它与事件相关的信息。如鼠标操作事件中,包含了鼠标的位置。键盘操作事件中,包含了是否敲击了键盘等。 DOM中的事件对象 兼容DOM的浏览器会将 事件对象Event 传入事件处理程序中,无论指定事件处理程序的方式是什么