{"id":3459,"date":"2019-04-24T08:53:00","date_gmt":"2019-04-24T08:53:00","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/mom-he-blocked-threads-again\/"},"modified":"2026-04-24T11:21:40","modified_gmt":"2026-04-24T11:21:40","slug":"mor-han-blokerede-trade-igen","status":"publish","type":"post","link":"https:\/\/thecodest.co\/da\/blog\/mom-he-blocked-threads-again\/","title":{"rendered":"MOM! Han har blokeret tr\u00e5de igen!"},"content":{"rendered":"<h2>Tr\u00e5de<\/h2>\n<p>Det vigtigste at huske: Der er to typer tr\u00e5de i <strong><a href=\"https:\/\/thecodest.co\/da\/blog\/find-your-node-js-expert-for-hire-today\/\">Node.js<\/a><\/strong>: Hovedtr\u00e5d - som h\u00e5ndteres af <b>Begivenheds-loop<\/b>og <b>Arbejderpulje<\/b> (tr\u00e5dpulje) - som er puljen af tr\u00e5de -.<br \/>\n<a href=\"http:\/\/docs.libuv.org\/en\/v1.x\/threadpool.html\" rel=\"nofollow\">takket v\u00e6re libuv<\/a>. Hver af dem har et forskelligt job. M\u00e5let for den f\u00f8rste er at h\u00e5ndtere ikke-blokerende I\/O-operationer, og den anden er ansvarlig for CPU-intensivt arbejde og ogs\u00e5 blokerende I\/O.<\/p>\n<p><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/libuv.png\" alt=\"diagram over libuv\" title=\"komponenter i libuv\" \/><\/p>\n<p>Men hvad er en tr\u00e5d, og hvordan adskiller den sig fra en proces? Der er flere forskelle, men den vigtigste for <a href=\"https:\/\/thecodest.co\/da\/blog\/why-us-companies-are-opting-for-polish-developers\/\">os<\/a> er, hvordan hukommelsen allokeres til dem. Du kan t\u00e6nke p\u00e5 en proces som p\u00e5 et program. I hver proces er der en del af hukommelsen, som kun er dedikeret til denne proces. S\u00e5 den ene proces har ikke adgang til den andens hukommelse, og denne egenskab sikrer h\u00f8j sikkerhed. For at etablere kommunikation mellem dem skal vi udf\u00f8re noget arbejde. Tr\u00e5de er anderledes. Tr\u00e5de k\u00f8rer inde i en proces og deler den samme hukommelse, s\u00e5 der er slet ikke noget problem med, at tr\u00e5de deler <a href=\"https:\/\/thecodest.co\/da\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">data<\/a>.<\/p>\n<p>Men \u00e9n ting skaber problemer. Det kaldes race condition. Tr\u00e5dene kan k\u00f8re p\u00e5 samme tid, s\u00e5 hvordan ved vi, hvilken der slutter f\u00f8rst? Det kan ske, at den f\u00f8rste gang du k\u00f8rer den, slutter den f\u00f8rste operation f\u00f8rst, og n\u00e6ste gang kan det vise sig at v\u00e6re det modsatte, og den anden operation slutter f\u00f8r den f\u00f8rste. Forestil dig at arbejde med skrive-\/l\u00e6seoperationer under s\u00e5danne forhold! Et mareridt! Det er nogle gange meget sv\u00e6rt at skrive korrekte <a href=\"https:\/\/thecodest.co\/da\/dictionary\/what-is-code-refactoring\/\">Kode<\/a> i et multi-threaded milj\u00f8.<\/p>\n<p>De flertr\u00e5dede sprog har ogs\u00e5 et stort hukommelsesoverhead, fordi de opretter en separat tr\u00e5d for hver anmodning; s\u00e5 hvis du vil kalde 1000 anmodninger, opretter de 1000 tr\u00e5de.<\/p>\n<p>Hvordan h\u00e5ndterer man s\u00e5dan et problem? Brug en enkelt tr\u00e5d i stedet! Og det er, hvad <strong><a href=\"https:\/\/thecodest.co\/da\/dictionary\/what-is-node-js-used-for\/\">Knudepunkt<\/a><\/strong> tilbyder dig.<\/p>\n<p><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/eventloop.png\" alt=\"enkelt tr\u00e5d eventloop\" title=\"Eventloop-diagram \" \/><\/p>\n<p>Som en <strong><a href=\"https:\/\/thecodest.co\/da\/blog\/hire-javascript-developer\/\">JavaScript udvikler<\/a><\/strong> Jeg opfordrer dig til at se <a href=\"https:\/\/youtu.be\/PNa9OMajw9w\" rel=\"nofollow\">film<\/a><br \/>\nhvor Bart Belder tydeligt forklarer begrebet event loop. Ovenst\u00e5ende diagram er taget fra hans pr\u00e6sentation. Og hvis du slet ikke kender disse begreber, kan b\u00e5de <strong>Knudepunkt<\/strong> og Libuv har fremragende dokumentation \ud83d\ude42.<\/p>\n<h2>Om blokering<\/h2>\n<p>I <strong><a href=\"https:\/\/thecodest.co\/da\/dictionary\/why-is-javascript-so-popular\/\">JavaScript<\/a> udvikling<\/strong> industrien siger de, at fordi <strong>Knudepunkt<\/strong> er enkelttr\u00e5det og ikke-blokerende, kan du opn\u00e5 h\u00f8jere samtidighed med de samme ressourcer end med flertr\u00e5dede l\u00f8sninger. Det er sandt, men det er ikke s\u00e5 smukt og nemt, som det m\u00e5ske ser ud til.<\/p>\n<p>Siden <strong>Node.js<\/strong> er enkelttr\u00e5det (<a href=\"https:\/\/thecodest.co\/da\/blog\/hire-vue-js-developers\/\">JS<\/a> del), vil CPU-intensive opgaver blokere alle igangv\u00e6rende anmodninger, indtil den p\u00e5g\u00e6ldende opgave er afsluttet. S\u00e5 det er rigtigt, at i <strong>Node.js<\/strong> kan man blokere alle foresp\u00f8rgsler, bare fordi en af dem indeholder en blokerende instruktion. Den blokerende kode betyder, at det tager mere end et par millisekunder at afslutte. Men forveksl ikke lang svartid med blokering. Svaret fra databasen kan tage meget lang tid, men det blokerer ikke din proces (applikation).<\/p>\n<p>Blokerende metoder udf\u00f8res synkront, og ikke-blokerende metoder udf\u00f8res asynkront.<\/p>\n<p>Hvordan kan du g\u00f8re dit event-loop langsommere (eller blokere det)?<\/p>\n<ul>\n<li>s\u00e5rbar regex - et s\u00e5rbart regul\u00e6rt udtryk er det, som din regul\u00e6re udtryksmotor kan bruge eksponentiel tid p\u00e5; du kan l\u00e6se mere om dem  <a href=\"https:\/\/nodejs.org\/en\/docs\/guides\/dont-block-the-event-loop\/\" rel=\"nofollow\">her<\/a>,<\/li>\n<li>JSON-operationer p\u00e5 store objekter,<\/li>\n<li>ved hj\u00e6lp af synkrone API'er fra <strong>Knudepunkt <\/strong>kernemoduler i stedet for asynkrone versioner; alle I\/O-metoder i Node.js-standardbiblioteket indeholder ogs\u00e5 deres asynkrone versioner,<\/li>\n<li>andre programmeringsfejl, som f.eks. synkrone uendelige l\u00f8kker.<\/li>\n<\/ul>\n<p>I s\u00e5 fald, da Worker Pool bruger en pulje af tr\u00e5de, er det s\u00e5 muligt at blokere dem ogs\u00e5? Desv\u00e6rre, ja \ud83d\ude41.<strong> Knudepunkt<\/strong> er baseret p\u00e5 en filosofi <code>en tr\u00e5d til mange klienter.<\/code> Lad os antage, at en given opgave, der udf\u00f8res af en bestemt Worker, er meget kompleks og kr\u00e6ver mere tid. Som f\u00f8lge heraf blokeres Workern, og den kan ikke bruges til at udf\u00f8re andre ventende opgaver, f\u00f8r dens instruktioner er udf\u00f8rt. Som du sikkert har g\u00e6ttet nu, kan det p\u00e5virke ydeevnen. Du kan forhindre s\u00e5danne problemer ved at minimere variationen i task-tider ved at bruge task-partitionering.<\/p>\n<h2>Konklusion<\/h2>\n<p>Undg\u00e5 blokering, det er helt sikkert. Hvis du kun kan, skal du altid v\u00e6lge asynkrone versioner af standardbibliotekets API'er. Ellers kan klienten efter at have k\u00f8rt din app opleve flere problemer, der starter med forringet gennemstr\u00f8mning og slutter med fuldst\u00e6ndig tilbagetr\u00e6kning, hvilket er fatalt set fra brugerens perspektiv.<\/p>\n<p><article-inline-code-review><\/article-inline-code-review><\/p>\n<p><b>L\u00e6s mere om det:<\/b><\/p>\n<p><a href=\"https:\/\/thecodest.co\/blog\/why-you-should-probably-use-typescript\">Hvorfor du (sandsynligvis) b\u00f8r bruge Typescript<\/a><\/p>\n<p><a href=\"https:\/\/thecodest.co\/blog\/how-not-to-kill-a-project-with-bad-coding-practices\/\">Hvordan dr\u00e6ber man ikke et projekt med d\u00e5rlig kodningspraksis?<\/a><\/p>\n<p><a href=\"https:\/\/thecodest.co\/blog\/data-fetching-strategies-in-nextjs\/\">Strategier for at hente data i NextJS<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\"Don`t block the event loop ...\" - du har sikkert h\u00f8rt denne s\u00e6tning mange gange ... Det overrasker mig ikke, for det er en af de vigtigste foruds\u00e6tninger, n\u00e5r man arbejder med Node. Men der er ogs\u00e5 en anden \"ting\", som du skal lade v\u00e6re med at blokere - Worker Pool. Hvis den fors\u00f8mmes, kan den have en betydelig indvirkning p\u00e5 applikationens ydeevne og endda dens sikkerhed.<\/p>","protected":false},"author":2,"featured_media":3460,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3459","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>MOM! He Blocked Threads Again! - The Codest<\/title>\n<meta name=\"description\" content=\"\u201cDon`t block the event loop\u2026\u201d \u2013 you&#039;ve probably heard this sentence many times\u2026 I&#039;m not surprised because it is one of the most important assumptions when working with Node. But there is also a second \u201cthing\u201d which you should refrain from blocking \u2013 the Worker Pool. If neglected, it can have a significant impact on application performance and even its security.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/da\/blog\/mor-han-blokerede-trade-igen\/\" \/>\n<meta property=\"og:locale\" content=\"da_DK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MOM! He Blocked Threads Again!\" \/>\n<meta property=\"og:description\" content=\"\u201cDon`t block the event loop\u2026\u201d \u2013 you&#039;ve probably heard this sentence many times\u2026 I&#039;m not surprised because it is one of the most important assumptions when working with Node. But there is also a second \u201cthing\u201d which you should refrain from blocking \u2013 the Worker Pool. If neglected, it can have a significant impact on application performance and even its security.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/da\/blog\/mor-han-blokerede-trade-igen\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-24T08:53:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:21:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"MOM! He Blocked Threads Again!\",\"datePublished\":\"2019-04-24T08:53:00+00:00\",\"dateModified\":\"2026-04-24T11:21:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/\"},\"wordCount\":755,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/\",\"name\":\"MOM! He Blocked Threads Again! - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg\",\"datePublished\":\"2019-04-24T08:53:00+00:00\",\"dateModified\":\"2026-04-24T11:21:40+00:00\",\"description\":\"\u201cDon`t block the event loop\u2026\u201d \u2013 you've probably heard this sentence many times\u2026 I'm not surprised because it is one of the most important assumptions when working with Node. But there is also a second \u201cthing\u201d which you should refrain from blocking \u2013 the Worker Pool. If neglected, it can have a significant impact on application performance and even its security.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#breadcrumb\"},\"inLanguage\":\"da-DK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MOM! He Blocked Threads Again!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"da-DK\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"da-DK\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/da\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MOM! Han har blokeret tr\u00e5de igen! - The Codest","description":"\"Don`t block the event loop ...\" - du har sikkert h\u00f8rt denne s\u00e6tning mange gange ... Det overrasker mig ikke, for det er en af de vigtigste foruds\u00e6tninger, n\u00e5r man arbejder med Node. Men der er ogs\u00e5 en anden \"ting\", som du b\u00f8r lade v\u00e6re med at blokere - Worker Pool. Hvis den fors\u00f8mmes, kan den have en betydelig indvirkning p\u00e5 applikationens ydeevne og endda dens sikkerhed.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/da\/blog\/mor-han-blokerede-trade-igen\/","og_locale":"da_DK","og_type":"article","og_title":"MOM! He Blocked Threads Again!","og_description":"\u201cDon`t block the event loop\u2026\u201d \u2013 you've probably heard this sentence many times\u2026 I'm not surprised because it is one of the most important assumptions when working with Node. But there is also a second \u201cthing\u201d which you should refrain from blocking \u2013 the Worker Pool. If neglected, it can have a significant impact on application performance and even its security.","og_url":"https:\/\/thecodest.co\/da\/blog\/mor-han-blokerede-trade-igen\/","og_site_name":"The Codest","article_published_time":"2019-04-24T08:53:00+00:00","article_modified_time":"2026-04-24T11:21:40+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg","type":"image\/jpeg"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"4 minutter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"MOM! He Blocked Threads Again!","datePublished":"2019-04-24T08:53:00+00:00","dateModified":"2026-04-24T11:21:40+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/"},"wordCount":755,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg","articleSection":["Software Development"],"inLanguage":"da-DK","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/","url":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/","name":"MOM! Han har blokeret tr\u00e5de igen! - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg","datePublished":"2019-04-24T08:53:00+00:00","dateModified":"2026-04-24T11:21:40+00:00","description":"\"Don`t block the event loop ...\" - du har sikkert h\u00f8rt denne s\u00e6tning mange gange ... Det overrasker mig ikke, for det er en af de vigtigste foruds\u00e6tninger, n\u00e5r man arbejder med Node. Men der er ogs\u00e5 en anden \"ting\", som du b\u00f8r lade v\u00e6re med at blokere - Worker Pool. Hvis den fors\u00f8mmes, kan den have en betydelig indvirkning p\u00e5 applikationens ydeevne og endda dens sikkerhed.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#breadcrumb"},"inLanguage":"da-DK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/"]}]},{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/thecodest_blog_post_coverproduct_design_agency_-5-.jpg","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"MOM! He Blocked Threads Again!"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"da-DK"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"da-DK","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/da\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts\/3459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/comments?post=3459"}],"version-history":[{"count":5,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts\/3459\/revisions"}],"predecessor-version":[{"id":7929,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/posts\/3459\/revisions\/7929"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/media\/3460"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/media?parent=3459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/categories?post=3459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/da\/wp-json\/wp\/v2\/tags?post=3459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}