stoppable and restartable thread simply using an event
Project description
Example
from sine.threads import *
def func(stop_event):
while 1:
if stop_event.is_set():
break
# do your work
thread = StoppableThread(target=func)
thread.start()
# ...
thread.stop(-1) # stop and join forever
# thread.stopped() == True
thread = ReStartableThread(target=func, event_name='stop_event') # can specify the parameter's name
thread.start()
# ...
thread.stop(1) # stop and join for 1 second
# ...
thread.start()
# ...
thread.stop()
thread.join()
# ...
Changelog
v0.1.7, 2019-2-9
- change to run with python3
v0.1.6, 2018-10-7
- stop() become stop(timeout=0) to join the thread for convenience and return whether it is alive.
- when the event_name is not specified, it is not strict to receive
the stop event any more, and it will be added to 'args'
so it can be receive by
*args'or other argument - add: thread lock
v0.1.5, 2018-9-11
- fix logic about join(), when directly join() without start() but stop()
v0.1.4, 2018-6-7
- ReStartableThread support join the old thread instance
- fix: ReStartableThread.start always creates new instance
- improve comment and change to English
- change directory structure and update setup.py
- add tests.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sine.threads-0.1.7.tar.gz
(6.6 kB
view details)
File details
Details for the file sine.threads-0.1.7.tar.gz.
File metadata
- Download URL: sine.threads-0.1.7.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.0 CPython/3.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f46675a1bc53b8537684b945762e35ad5ffed3babea2245d1c48a03423df041c
|
|
| MD5 |
b69406b0b4e7fda72a4975c77810f4f1
|
|
| BLAKE2b-256 |
44f02be4eb4afb05f51633a4b995fd52f7c3da1bc5a51395f2eec4214b610d6b
|