Skip to Content
Twisted Network Programming Essentials, 2nd Edition
book

Twisted Network Programming Essentials, 2nd Edition

by Abe Fettig, Jessica McKellar
March 2013
Beginner content levelBeginner
191 pages
4h 9m
English
O'Reilly Media, Inc.
Content preview from Twisted Network Programming Essentials, 2nd Edition

Chapter 10. Threads and Subprocesses

A mantra from Chapter 3 bears repeating: Twisted does not automatically make your code asynchronous or nonblocking.

What does Twisted do? It provides nonblocking primitives for common networking, filesystem, and timer activities, which wrap underlying nonblocking APIs exposed by the operating system. Twisted programs are event-driven; they use callbacks and are structured differently from synchronous programs. Twisted provides the Deferred abstraction to help manage these callbacks.

Even though Twisted programs use this event-driven model, sometimes you’ll still need to use threads or processes. This chapter covers some of the common cases and the relevant Twisted APIs.

Threads

In some cases—for example, when you’re using a blocking third-party API—the functions you’d like to use in your Twisted program aren’t under your control to be refactored into asynchronous ones using callbacks and Deferreds.

You are stuck with a blocking API, and you can’t use it as-is or you’ll block the entire event loop. To use it, you will need to make the blocking calls in threads. Twisted provides several methods related to making threaded calls, including:

callInThread

Execute a blocking function in its own thread.

deferToThread

Execute a blocking function in its own thread, and return the result as a Deferred.

In practice, deferToThread gets much more use than callInThread because you want a uniform interface to results, and Deferreds are that interface in Twisted programs. ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Twisted Network Programming Essentials

Twisted Network Programming Essentials

Abe Fettig
Learning Python Networking - Second Edition

Learning Python Networking - Second Edition

José Manuel Ortega, Dr. M. O. Faruque Sarker, Sam Washington
Network Routing, 2nd Edition

Network Routing, 2nd Edition

Deep Medhi, Karthik Ramasamy
Expert Twisted: Event-Driven and Asynchronous Programming with Python

Expert Twisted: Event-Driven and Asynchronous Programming with Python

Mark Williams, Cory Benfield, Brian Warner, Moshe Zadka, Dustin Mitchell, Kevin Samuel, Pierre Tardy

Publisher Resources

ISBN: 9781449326104Errata PageSupplemental Content