It’s not that simple.
- bottlenecks (e.g. maybe your database is waiting for the previous request to finish, then your goroutine is just waiting)
- race conditions: whenever multiple threads access the same data, there is a big risk of corrupting the data (better a CORRECT program than a FAST but WRONG program)
Golang with it’s unique channels (and other things like WaitGroup, …) makes it easier to avoid race conditions than most other languages but that does not mean you should always write multi-threaded programs. It’s still more difficult than single-threaded because you have to be mindful about the synchronisation between the threads/goroutines.