Completed
The approach of Twisted, Tornado, asyncio, curio
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
The Report of Twisted's Death
Automatically move to the next video in the Classroom when playback concludes
- 1 Intro
- 2 Release Manager
- 3 Deployed with runners that run many copies using threads or processes
- 4 use safely (without race conditions)
- 5 Thread memory overhead: 32kB to 8MB per thread
- 6 The approach of Twisted, Tornado, asyncio, curio
- 7 Identical system call at their core: Selector functions
- 8 Selector functions take a list of file descriptors (e.g. sockets, open files) and tell you what is ready for reading or writing
- 9 Selector loops can handle thousands of open sockets and events
- 10 Data is channeled through a transport to a protocol implementation (e.g. HTTP)
- 11 Sending data is queued until the network is ready
- 12 Higher density per core No threads required! Concurrency, not parallelism
- 13 You're probably waiting on the client or the database
- 14 coroutines are a special generator
- 15 Repairing library API fragmentation
- 16 It should be easy for (Python 3.3 ports of) frameworks like Twisted, Tornado, or even gevent to either adapt the default event loop implementation to their needs using a lightweight adapter or proxy,…
- 17 Reducing duplication
- 18 For this interoperability to be effective, the preferred direction of adaptation in third party frameworks is to keep the default event loop and adapt it to the framework's API. Ideally all third par…
- 19 asyncio is an apple Twisted is a fruit salad
- 20 Tornado is a great example of interoperation
- 21 Asynchronous code executed in a synchronous style
- 22 Why Twisted is still worth using
- 23 Time based releases, taken off our trunk branch
- 24 Super easy to make your own protocols!
- 25 Established library support
- 26 Code review Automated testing Thousands of tests
- 27 Python 3.4/3.5 is coming to Windows soon!