Coming soon

Remember everything you read

Upload your PDFs. Highlight what matters. Ask questions later. ReadShelf turns your reading into a searchable, AI-powered knowledge base.

Join the waitlist See how it works
Concurrency in Go — Katherine Cox-Buday
84
Library
Export
has at least one goroutine: the main goroutine.
Every Go program has at least one goroutine.
In fact, on most architectures, the Go scheduler uses an M:N scheduling model, multiplying M goroutines onto N OS threads. This gives the runtime a lot of flexibility.
Highlight Strikethrough
Goroutines are not OS threads, and they’re not exactly green threads — threads managed by a language’s runtime. They are a higher level of abstraction known as processes coroutines.
Coroutines are simply concurrent subroutines that are nonpreemptive — that is, they cannot be interrupted. Instead, coroutines have multiple points throughout which allow for suspension or reentry.
Goroutines are not garbage collected automatically when the function they were invoked from returns. The Go runtime handles multiplexing goroutines onto OS threads for you. A goroutine consumes roughly 2–8 KB of stack space.
Annotations
Ask AI
Annotations
12
Total
9
Highlights
3
Strikes
Notes
p. 84 Highlight
goroutine is one of the most basic units of organization in a Go program
p. 84 Highlight
the Go scheduler uses an M:N scheduling model, multiplying M goroutines onto N OS threads
"Key insight — explains why goroutines are so cheap"
p. 82 Strikethrough
imposing goroutines to others
p. 84 Highlight
the Go scheduler uses an M:N scheduling model, multiplying M goroutines onto N OS threads
What did I learn about goroutine scheduling?
Based on your highlights, Go uses an M:N scheduling model that multiplexes M goroutines onto N OS threads. This is what makes goroutines lightweight — they’re not 1:1 with OS threads. You noted this as a key insight explaining why goroutines are so cheap to create.
Concurrency in Go — p. 84
How are goroutines different from threads?
Goroutines are neither OS threads nor green threads. Your highlights describe them as coroutines — concurrent subroutines with multiple suspension/reentry points that are nonpreemptive. They consume only 2–8 KB of stack space.
Concurrency in Go — p. 84–85
Features

Your reading, finally organized

📖

In-browser PDF reader

Upload any PDF and read it right in your browser. No app install, no file format fuss. Your library lives in the cloud.

Highlight & strikethrough

Select text and annotate instantly. Add a personal note to any highlight explaining why it matters to you.

🔖

Auto-tagged annotations

Every annotation is automatically tagged with the book title, chapter, page number, and date. Zero manual work.

🔍

Cross-book search

Search across all your highlights from every book at once. Find that quote you half-remember in seconds.

🤖

AI recall

"What did I learn about replication?" Ask questions in plain English across your entire library. Answers cite the book and page.

📦

Export anywhere

Export your annotations to Markdown, Notion, or Obsidian. Your knowledge, your format. (Pro)

How it works

Three steps to total recall

1

Upload your PDFs

Drag and drop your books. ReadShelf stores them securely and builds your personal library.

2

Read and annotate

Highlight passages, strikethrough what's wrong, add notes about why something matters. Every annotation is captured with full context.

3

Search and ask

Find anything across your entire library with full-text search or ask the AI in plain language. It answers with citations.

One place for everything you've read

Unified search across your entire library, powered by AI.

$5$10 /month
I'd pay for this

Get early access

Be the first to try ReadShelf. Join the waitlist and we'll let you know when it's ready.

No spam. We'll email you once when we launch.

You're on the list! We'll be in touch soon.

Quick question

Would you pay $5–$10/month for unified AI search across your entire PDF library?

Thanks for your input! This helps us build the right thing.