House building analogy
This example application demonstrates why concurrency and parallelism are needed in modern software applications. Points of interest:
- Run in Sequential mode first. Notice that the GUI freezes, and only one CPU-core is used on your system. Note the time (printed to console).
- Now run it in Concurrent mode. Notice that the GUI doesn't freeze this time, but still only one CPU-core is used on your system. Note the time (printed to console), which will most likely actually be slower than Sequential even though it appeared more responsive!
- Now run it in Parallel mode. The GUI doesn't freeze, and you will notice all your CPU-cores are used. Note the time (printed to console), which will be a lot faster.
If you didn't get the speedup you expected (e.g. you only got 2.5x on a "4-core" processor) it will be because you have hyper-threading.
You may download the house example here
- Run from the command line > java -jar house.jar