Skip to main content

manage spawned threads

Project description

threading_manager (v0.0.8)

DESCRIPTION_SHORT

Manage spawned threads

DESCRIPTION_LONG

designed to working with spawned threads

Features

  1. use different managers for different funcs/methods if needed
  2. use just one decorator to spawn threads from func / methods
  3. keep all spawned threads in list by ThreadItem objects
  4. ThreadItem keeps result/exx/is_alive attributes!
  5. use wait_all()

License

See the LICENSE file for license rights and limitations (MIT).

Release history

See the HISTORY.md file for release history.

Installation

pip install threading-manager

Import

from threading_manager import *

USAGE EXAMPLES

See tests and sourcecode for other examples.


1. example1.py

from threading_manager import *

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

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

threading_manager-0.0.8.tar.gz (5.0 kB view hashes)

Uploaded Source

Built Distribution

threading_manager-0.0.8-py3-none-any.whl (5.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page