As we conclude, here is a list of questions for you to test your knowledge of this chapter's material. You will find the answers in the Assessments section of the book:
- When is a publisher-subscriber model a good design approach?
 - What is the Python GIL, and what implication does it present for classic threading?
 - Why is a pure event-loop usually a poor choice for complex applications?
 - Is an event-loop approach a bad idea? Why or why not?
 - What is the purpose of the thread.join() function call?
 - You have used a thread to poll your new analog component via an analog-to-digital converter. However, you find that your code behaves sluggishly to changes in the component. What could be the problem?
 - Which is the superior approach to designing an IoT or electronic interfacing application in Python – using an event-loop, a thread/callback, the publisher-subscriber model, or an AsyncIO-based approach?