Question: what is the difference between asynchronous programming and multithreading?
Answer: Multi threading means that your program runs parallel on multiple threads. Nothing more, nothing less. Async programming means in layterms that instead of blocking and wait for a call (most likely IO operations) you just register a callback and you will be notified when the underlying operation has finished.