liveBook · Manning

Logical thread

A logical thread is an independent line of computation managed at the program or runtime level without necessarily corresponding to an operating-system thread.

How 3 Manning books explain it

Functional Programming in Scala, Second Edition

A logical thread is an independent line of computation used to describe concurrent execution without necessarily denoting a physical operating-system thread.

How it is used
Explains how functional programs express concurrent work without tying each computation directly to an operating-system thread.
How deep it goes
Defines the physical-versus-logical distinction and traces parallel filtering and fixed-pool deadlock, without detailing scheduler internals.
Examples
Uses parallel filtering, asyncF, sequence, fork nesting, and fixed-size thread pools as concrete illustrations.
What you can do after
Apply it via Par by separating logical computation structure from executor-backed execution and recognizing a nested-fork deadlock risk.

Read how Functional Programming in Scala, Second Edition explains logical thread →

Learn Concurrent Programming with Go

A user-level thread is a thread managed by a language runtime or user-space library rather than directly by the operating system kernel.

How it is used
Frames goroutines as application-level concurrent executions managed by Go’s runtime rather than directly by the operating system.
How deep it goes
Explains runtime scheduling, state management, and context switching, while noting that Go’s specification does not guarantee a specific implementation.
Examples
Uses a diagram of user-level threads inside one kernel-level thread and goroutines mapped onto kernel-level threads.
What you can do after
Understand how Go separates goroutine creation from operating-system thread management.

Read how Learn Concurrent Programming with Go explains logical thread →

Grokking Concurrency

A user-level thread is a thread managed by a user-space runtime or library rather than directly by the operating system.

How it is used
Uses developer-managed tasks to share one worker thread during cooperative multitasking and asynchronous I/O.
How deep it goes
Explains scheduling behavior, switching costs, resource sharing, and yielding, but stops short of implementation code.
Examples
Uses millions of coroutines, single-threaded scalable applications, and I/O-heavy servers and databases as concrete applications.
What you can do after
Evaluate when lightweight cooperative tasks suit concurrent I/O workloads and recognize the danger of failing to yield.

Read how Grokking Concurrency explains logical thread →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.