Threading and multiprocessing eye-candy.
Project description
Description
Pebble provides a neat API to manage threads and processes within an application.
Examples
Spawn a function within a thread:
from pebble import thread
def function(foo, bar=0):
print foo + bar
thrd = thread.spawn(target=function, args=[1], kwargs={'bar':2})
thrd.join()
Most of the functions work as well as decorators:
from pebble import process
@process.spawn(daemon=True)
def function(foo, bar=0):
print(foo + bar)
proc = function(1, bar=2)
proc.join()
Run a job in a separate process and wait for its results:
from pebble import process
@process.concurrent
def function(foo, bar=0):
return foo + bar
task = function(1, bar=2)
results = task.get() # blocks until results are ready
Pools allow to execute several tasks without the need of spawning a new worker for each one of them:
from threading import current_thread
from pebble import thread
def task_done(task):
results, thread_id = task.get()
print "Task %s returned %d from thread %s" % (task.id,
results,
thread_id)
def do_job(foo, bar=0):
return foo + bar, current_thread().ident
with thread.Pool(workers=5) as pool:
for i in range(0, 10):
pool.schedule(do_job, args=(i, ), callback=task_done)
Check the documentation for more examples.
TODO:
waitforprocesses, waitforprocessqueues: wait for multiple Processes and multiprocessing.Queues
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 Distribution
Pebble-3.1.6.tar.gz
(18.1 kB
view details)
File details
Details for the file Pebble-3.1.6.tar.gz.
File metadata
- Download URL: Pebble-3.1.6.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bca90d49407e37a0d4d65816895f6cb83ed3c590060d9d2760cae03e4f9f1047
|
|
| MD5 |
a8607f278c604d208d7ffddb4742767c
|
|
| BLAKE2b-256 |
c2e7d695e1af8263117a3d37bc5be5049dacd3b0e1db0fec33adcf2aef5cd988
|