exercises we've covered several different concurrency paradigms in this and still don' have clear idea of when each one is useful as we saw in the case studyit is often good idea to prototype few different strategies before committing to one concurrency in python is huge topic and an entire book of this size could not cover everything there is to know about it as your first exercisei encourage you to check out several third-party libraries that may provide additional contextexecneta library that permits local and remote share-nothing concurrency parallel pythonan alternative interpreter that can execute threads in parallel cythona python-compatible language that compiles to and has primitives to release the gil and take advantage of fully parallel multi-threading pypy-stman experimental implementation of software transactional memory on top of the ultra-fast pypy implementation of the python interpreter gevent if you have used threads in recent applicationtake look at the code and see if you can make it more readable and less bug-prone by using futures compare thread and multiprocessing futures to see if you can gain anything by using multiple cpus try implementing an asyncio service for some basic http requests you may need to look up the structure of an http request on the webthey are fairly simple ascii packets to decipher if you can get it to the point that web browser can render simple get requestyou'll have good understanding of asyncio network transports and protocols make sure you understand the race conditions that happen in threads when you access shared data try to come up with program that uses multiple threads to set shared values in such way that the data deliberately becomes corrupt or invalid remember the link collector we covered for the case study in python data structurescan you make it run faster by making requests in parallelis it better to use raw threadsfuturesor asyncio for thistry writing the run-length encoding example using threads or multiprocessing directly do you get any speed gainsis the code easier or harder to reason aboutis there any way to speed up the decompression script by using concurrency or parallelism