Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/haizzz/thread6
Simple parallel processing interface for python
https://github.com/haizzz/thread6
easy-to-use hacktoberfest multithreading python3 threading
Last synced: 20 days ago
JSON representation
Simple parallel processing interface for python
- Host: GitHub
- URL: https://github.com/haizzz/thread6
- Owner: Haizzz
- License: mit
- Created: 2018-08-17T11:25:17.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-10-20T12:25:44.000Z (about 4 years ago)
- Last Synced: 2024-10-10T20:49:17.782Z (about 1 month ago)
- Topics: easy-to-use, hacktoberfest, multithreading, python3, threading
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# thread6
Simple parallel processing interface for python## Why?
Python's built in parallel processing and threading library is pretty simple to implement but sometimes you just want to chuck data at a function and make it run faster## Requirements
Python 3+## Installation
```shell
$ pip install thread6
```## Quickstart
Use the `threaded` decorator to turn a method into a threaded method. That's it!
```python
@thread6.threaded()
def threaded_print():
print("")
return 1
```Alternatively, use `run_threaded` function
```python
thread6.run_threaded(threaded_print)
```Both the `threaded` decorator and `run_threaded` method will return an instance of
`ResultThread`. This allow you to optionally wait for the function to finish executing
and get the return value. To get the return value, use `.await_output()`
```python
result = threaded_print()
result.await_output() # this will return 1
```If you have a function that needs to execute on a large list of data, use `run_chunked`
```python
def update_items(items):
...items = [...]
thread6.run_chunked(update_items, items)
```
`.await_output()` also work with `run_chunked` but will return a list of return values instead## Run the tests
Run tests with
```python
python tests.py
```## Todo
- [x] threaded function decorator
- [x] run something in a separate thread function
- [x] split data into chunk and run in separate threads
- [ ] add way for errors to fail loudly
- [ ] auto spawn to run fx on a set of data
- [ ] explore multi processing?