Python Event wait() Method with Example

Python Event.wait() Method: In this tutorial, we will learn about the wait() method of Event Class in Python with its usage, syntax, and examples. By Hritika Rajput Last updated : April 25, 2023

Python Event.wait() Method

The Event.wait() is an inbuilt method of the Event class of the threading module. When we want a thread to wait for an event, we can call the wait() method on that event whose internal flag is set to false, thereby blocking the thread until the internal flag of that event object is set to true by the set() method. If the internal flag is true on entry, then the thread is not blocked. The thread remains blocked until the internal flag remains false or the timeout occurs. We can give the optional timeout to the function with the help of the timeout argument.

Module

The following module is required to use wait() method:

import threading

Class

The following class is required to use wait() method:

from threading import Event

Syntax

The following is the syntax of wait() method:

wait(timeout=None)

Parameter(s)

The following are the parameter(s):

  • timeout: It is an optional parameter, which specifies the timeout for the wait() method. Once this value exceeds, the threads, waiting on the event, get unblocked. Its default value is None.

Return Value

The return type of this method is <class 'Bool'>. It returns if the thread gets released before the timeout else returns false.

Example 1: Use of Event.wait() Method

# Python program to explain the
# use of wait() method in Event() class
import threading
import time

def helper_function(event_obj, timeout,i):
  # Thread has started, but it will wait 10 seconds for the event  
  print("Thread started, for the event to set")
 
  flag = event_obj.wait(timeout)
  if flag:
    print("Event was set to true() earlier, moving ahead with the thread")
  else:
    print("Time out occured, event internal flag still false. Executing thread without waiting for event")
    print("Value to be printed=", i)
    
if __name__ == '__main__':
  # Initialising an event object
  event_obj = threading.Event()
  
  # starting the thread who will wait for the event
  thread1 = threading.Thread(target=helper_function, args=(event_obj,10,27))
  thread1.start()
  # sleeping the current thread for 5 seconds
  time.sleep(5)
  
  # generating the event
  event_obj.set()
  print("Event is set to true. Now threads can be released.")
  print()

Output

Thread started, for the event to set
Event is set to true. Now threads can be released.

Event was set to true() earlier, moving ahead with the thread

Example 2: Use of Event.wait() Method

# Python program to explain the
# use of wait() method in Event() class
import threading
import time

def helper_function(event_obj, timeout,i):
  # Thread has started, but it will wait 3 seconds for the event  
  print("Thread started, for the event to set")
 
  flag = event_obj.wait(timeout)
  if flag:
    print("Event was set to true() earlier, moving ahead with the thread")
  else:
    print("Time out occured, event internal flag still false. Executing thread without waiting for event")
    print("Value to be printed=", i)
    
if __name__ == '__main__':
  # Initialising an event object
  event_obj = threading.Event()
  
  # starting the thread who will wait for the event
  thread1 = threading.Thread(target=helper_function, args=(event_obj,3,27))
  thread1.start()
  # sleeping the current thread for 5 seconds
  time.sleep(5)
  
  # generating the event
  event_obj.set()
  print("Event is set to true. Now threads can be released.")
  print()

Output

Thread started, for the event to set
Time out occured, event internal flag still false. Executing thread without waiting for event
Value to be printed= 27
Event is set to true. Now threads can be released.

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.