File size: 947 Bytes
7b64dcd f5226c0 e80f558 f5226c0 7b64dcd f5226c0 7b64dcd f5226c0 e80f558 f5226c0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import threading
class BaseThread(threading.Thread):
def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None):
super().__init__(group, target, name, args, kwargs, daemon=daemon)
self._exit_event = threading.Event()
self._is_ready_event = threading.Event()
self._stop_event = threading.Event()
def exit(self):
self._exit_event.set()
@property
def is_exited(self):
return self._exit_event.is_set()
@property
def is_ready(self):
return self._is_ready_event.is_set()
@is_ready.setter
def is_ready(self, value: bool):
if value:
self._is_ready_event.set()
else:
self._is_ready_event.clear()
def stop(self):
self._stop_event.set()
@property
def is_stopped(self):
return self._stop_event.is_set()
def resume(self):
self._stop_event.clear()
|