Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Threads and Event
#1
this is not working
I don't understand this threading.Event
what i am doing wrong?



import threading
import numpy as np
from time import sleep


def read():
    event_rd.wait()             #should be run when x>50
    print("read is running")

def read_write():
    event_rdw.wait()            #should be run when x<50
    print("read_write is running")


def detect():
    while True:
          x= np.random.randint(1,100)
          if x > 50:
              if event_rdw.is_set():
                  event_rdw.clear()
                  print("read_write paused")
              event_rd.set()
              # code

          if x < 50:
              if event_rd.is_set():
                  event_rd.clear()
                  print("read paused")
              event_rdw.set()
              # code
          sleep(2)


event_rd = threading.Event  # restart read() and pause read_write()
event_rdw = threading.Event  # restart read_write ans pause read()
event_rd.set()
event_rdw.set()

t_main = threading.Thread(target=detect, name="detect")
t_main.start()

t_rd = threading.Thread(target=read, name="read")
t_rdw = threading.Thread(target=read_write, name="read_write")

t_rd.start()
t_rdw.start()
error log

Error:
Traceback (most recent call last): File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner self.run() File "/usr/lib/python3.5/threading.py", line 862, in run self._target(*self._args, **self._kwargs) File "/home/pi/piwork/erosion-test/eventTest.py", line 11, in read_write event_rdw.wait() TypeError: wait() missing 1 required positional argument: 'self'
Reply
#2
more info and examples for threading here: https://pymotw.com/3/threading/
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020