Threading API
Thread
Thread management.
Create(f, globalize=True, *args, **kwargs) → Thread
Creates and starts a new thread.
CreateTimer(interval, f, globalize=True, *args, **kwargs) → Timer
Creates a delayed execution timer.
Sleep(interval)
Pauses the current thread for the given number of seconds.
Lock(key=None) → Lock
Returns a named or anonymous lock.
AcquireLock(key)
Acquires a named lock.
ReleaseLock(key)
Releases a named lock.
Block(key)
Clears a named event (blocks waiters).
Unblock(key)
Sets a named event (unblocks waiters).
Wait(key, timeout=None) → bool
Waits for a named event. Returns True if event was set.
Event(key=None) → Event
Returns a named or anonymous event.
Semaphore(key=None, limit=1) → Semaphore
Returns a named or anonymous semaphore.
Queue
Reference to Python’s Queue.Queue class.
Decorator Examples
@thread
def background_task():
# This runs in a new thread
...
background_task() # Returns immediately, function runs in background
@spawn
def init_task():
# Runs immediately in a new thread when the module loads
...
@lock('my_operation')
def safe_operation():
# Runs with 'my_operation' lock held
...
@parallelize
def fetch_all():
for url in urls:
@task
def fetch(url=url):
results.append(HTTP.Request(url).content)