manage spawned threads
Designed to working with spawned threads
NOTE: maybe you dont need use it if you need only one class method - use direct QThread
- use different managers for different funcs/methods if needed
- use just one decorator to spawn threads from func / methods
- keep all spawned threads in list by ThreadItem objects
- ThreadItem keeps result/exx/is_alive attributes!
- use wait_all/terminate_all()
See the LICENSE file for license rights and limitations (MIT).
See the HISTORY.md file for release history.
pip install threading-manager
from threading_manager import *
See tests and sourcecode for other examples.
from threading_manager import *
import time
count = 5
time_start = time.time()
# define victim ------------------
class ThreadManager1(ThreadsManager):
pass
class Cls:
@ThreadManager1().decorator__to_thread
def func1(self, num):
time.sleep(1)
return num * 1000
# spawn ------------------
for i in range(count):
assert Cls().func1(i) is None
assert ThreadManager1().count == count
ThreadManager1().wait_all()
assert {item.result for item in ThreadManager1().THREADS} == {num * 1000 for num in range(count)}
ThreadManager1().clear()
# spawn ------------------
for i in range(count):
assert Cls().func1(i) is None