burncpu

A worker dispatcher with multiprocessing and multithreading.


License
MIT
Install
pip install burncpu==0.0.16

Documentation

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.