Goroutines and channels, being the core constructs of concurrent programming in Go, will provide most of the utility that you will need. However, there are many helpful objects that the Go standard library provides that are also useful to know. We have already seen how sync.Mutex and sync.RWMutex work, but let's take a look at some of the other objects offered.
sync package helpers
Conditions
Now that you are able to launch scraper tasks into multiple threads, some controls will need to be put into place so things don't get too out of hand. It is very simple in Go to launch 1,000 goroutines to scrape 1,000 pages simultaneously from a single program. However, your machine most likely cannot handle the same load. The...