Would like to be pointed to some resources for coroutines

I’m doing a course on go with Matt Holliday and would like some help regarding what is a coroutine. From googling around its described as a function that you can pause and resume. But I believe that is not right for go? I’m just trying to understand it well since that’s where goroutine gets it name from…

If someone could point me to some resources to help understand It would be greatly appreciated

If we simply understand the relationship between processes and threads, for processes, the overhead of threads will be much smaller and asynchronous processing can be done. The same is true for coroutines.
If you don’t want to understand it in depth, just understand it as an asynchronous processing function.
Goroutine is everywhere in the development of golang. Unlike other programming languages, golang is mainly based on goroutine.

I would like to understand it in depth

https://research.swtch.com/coro

Some of this helped but this focuses on coroutines, I would like to know about goroutines in detail