Synchronous and asynchronous are different methods of running processes, synchronous processes will be run one after another whereas asynchronous processes will be run simultaneously and potentially finish at different times.
When writing code most of your code will be run in a synchronous process, one line after the other. However, using separate threading and multi-threading programming tactics can allow you to run different paths of code simultaneously or asynchronously. Making your code run asynchronously can allow you to run a process in the background and run other code while you wait for it finish.
An example of an asynchronous process would be updating a social media feed in real-time. Allowing a user to scroll social media continuously and automatically loading more content is a great example of asynchronous processing. While the user scrolls to the end of their current feed you load more content in the background and once the content is loaded you add it to the feed. This allows the user to continue scrolling, without being interrupted, and the feed to update in the background using an asynchronous process.
It is important to know when to use asynchronous programming or multi-threading processes. When is it beneficial, will it add value to the program? Using multi-threading programming when it is not needed, for example, making every process in your program run in a different thread, can actually make your code run slower as you will be using up all of your computer’s memory and it will not be able to continue executing the code.