Multithreading
Starting a new thread
Starting a thread and waiting for it
Asynchronous call with a result
Synchronization with locks