A worker dispatcher with multiprocessing and multithreading.
Project description
Module burncpu is a worker dispatcher with multiprocessing and multithreading.
Features
All CPU cores can be used.
Workers can be stopped gracefully by system signals.
Pure python code.
Quickstart
Use the following command to run the sample module.
python3 -m burncpu.sample
Then monitor CPU status, some changes take place at these time.
Time |
Events |
---|---|
0s |
All CPU cores are IDLE. |
10s |
Workers begin to call one_second_task many times. |
60s |
Workers begin to terminate. |
Pressing Ctrl+C or sending system signal can also terminate the sample.
Finally copy and modify the source code to make your own.
Reference
To import
from burncpu.dispatcher import WorkerDispatcher
class WorkerDispatcher
WorkerDispatcher.__init__(worker_count=0, use_core=0, time_limit=0)
Create a dispatcher instace.
- worker_count
How many threads would be created, 0 means to create (use_core * 2) threads.
- use_core
How many cores would be use, 0 means all cores.
- time_limit
Stop workers after given seconds. Running functions still run at that moment. Queued functions would be cancled.
WorkerDispatcher.dispatch(func, args)
Dispatch a function to one of workers randomly.
- func
Function to call.
- args
Argument list of this function.
WorkerDispatcher.sleep(seconds)
Sleep dispatcher for given seconds.
- seconds
Seconds to sleep. Dispatcher would not sleep given seconds actually. It sleep many times during given seconds, so that system signal (e.g. Ctrl+C) can be handled.
WorkerDispatcher.join()
Wait until all workers stopped.
WorkerDispatcher.is_alive()
Check if the dispatcher is alive.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file burncpu-0.0.16-py3-none-any.whl
.
File metadata
- Download URL: burncpu-0.0.16-py3-none-any.whl
- Upload date:
- Size: 3.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf38333a1fd4668cafbeca017ca3e472f01053446e1a1607294d23b9642fc2b9 |
|
MD5 | c66fe30a6cdc688e604e8a2ce69a8df7 |
|
BLAKE2b-256 | 3cd6c49501e900c1b39c39fd5b56f9afbce685a9c83aae05b36161ab18140515 |