---
title: "Comment by Azhar Abbas on \"The 7 Threads Running Inside Every Node.js Process\" | Hashnode"
description: "The distinction between V8 helpers and the libuv pool is useful. One caveat for readers: the exact startup thread count can vary with Node/V8 versions, platform"
url: "https://hashnode.com/posts/why-an-empty-nodejs-process-runs-7-threads/6af6d73a41060513e7d11ea0/comment/6af738966de7ba9a52437c9b"
---

[Discussion](https://hashnode.com/posts/why-an-empty-nodejs-process-runs-7-threads/6af6d73a41060513e7d11ea0)

Comment [The 7 Threads Running Inside Every Node.js Process](https://hashnode.com/posts/why-an-empty-nodejs-process-runs-7-threads/6af6d73a41060513e7d11ea0)

[Azhar Abbas](https://hashnode.com/@azharabbas)

[5h ago](https://hashnode.com/posts/why-an-empty-nodejs-process-runs-7-threads/6af6d73a41060513e7d11ea0/comment/6af738966de7ba9a52437c9b)

The distinction between V8 helpers and the libuv pool is useful. One caveat for readers: the exact startup thread count can vary with Node/V8 versions, platform and runtime flags, so seven is an observation rather than a portable guarantee. Also, single-threaded JavaScript can still have logical races across await boundaries. For a payment handler, for example, checking a balance and updating it in separate steps still needs a database transaction or another concurrency safeguard.
