I\'m looking for a good explanation of the need to use multi-threading in graphical applications. In the examples below Python is used but the question is not python specific it
Multithreading is one way of approaching this, but not necessarily the only (or best) way. As a python example, greenlets provide a way of running concurrent processes within the same thread, avoiding the problems with locking associated with multithreading. I would certainly consider greenlets to be a preferred solution in most cases simply because of the relative ease of coding them.