I could do the following experiments with my code:
A) increase the number of cars on the road at any one point. Multithreading.
B) increase the width of roads
C) increase the number of crossings (semphores)
D) motorways - algorithm fast path
E) lanes - slow path, when the fast path
cannot be used
F) for multithreaded software there would be multiple cars around the roads as each car represents part of a request
G) traffic jams are blocking synchronous calls
H) asynchronous programming is represented as a delivery from a depot and a return journey