/explore

Click through on any links that interest you or select the planets on the right to continue exploring the Outer Web.
You are here

konradreiche.com
| | jbrandhorst.com
2.9 parsecs away

Travel
| | Sometimes when you're writing a server, you've got a function that consumes a lot of memory while running, or some other resource, and you might be worrying that a sudden burst of requests could crash the server, since gRPC by default will just spawn another goroutine to handle any incoming requests, oblivious to the danger. In these situations, it can be useful to implement some custom request throttling. Here I'll show an easy way to accomplish this with the use of a Go channel.
| | hjr265.me
3.0 parsecs away

Travel
| | Concurrency is one of the central features of Go. And, to build concurrent programs in Go, you need goroutines. A goroutine is like a thread, but lighter. Much lighter. And, like any other built-in feature of Go, using it is dead simple: 1 2 3 4 5 6 7 package main func main() { go func() { println("Hello World") // Print "Hello World" from a different goroutine. }() } Wait. That didn't print anything.
| | matttproud.com
3.9 parsecs away

Travel
| | Pop quiz, hot shot: what is the behavior of func f (as defined below) when it is called from a bare gRPC method or HTTP handler as go f(ctx) using the context.Context provided to the handler?1 1 2 3 4 5 6 7 8 9 10 11 func f(ctx context.Context) { // Flimsily make it improbable for this function to continue while the // handler is serving. time.Sleep(time.Second) select { case <-time.
| | antonym.org
22.3 parsecs away

Travel
| This article continues the series on threading with Boost, by looking indepth at several sample programs which illustrate different aspects ofmutexes. We lo...