Can you explain the difference between synchronous and asynchronous programming, and provide an example of when you would use each?

Technical