I am very confused about the difference between coroutines and suspend functions, and this is what I think about them. Am I correct?
Coroutine is like Threads but lightweight, it basically creates a new lightweight job or task on the other hand, the suspend function is like a function which is signalling that - "O My Coroutine, I might have some task which might take longer so you can run me on your own thread" hence suspend/pause the Coroutines execution.
In Short, a Coroutine is just like a bus and suspend functions are like stops.