{"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":"ema-ta-blokeeris-jalle-teemasid","status":"publish","type":"post","link":"https:\/\/thecodest.co\/et\/blog\/mom-he-blocked-threads-again\/","title":{"rendered":"EMA! Ta blokeeris j\u00e4lle teemasid!"},"content":{"rendered":"<h2>Niidid<\/h2>\n<p>Peamine asi, mida tuleb meeles pidada: on olemas kahte t\u00fc\u00fcpi niidid. <strong><a href=\"https:\/\/thecodest.co\/et\/blog\/find-your-node-js-expert-for-hire-today\/\">Node.js<\/a><\/strong>: Main Thread - millega tegeleb <b>S\u00fcndmuse ts\u00fckkel<\/b>ja <b>T\u00f6\u00f6tajate reserv<\/b> (niidipool) - mis on niidipool -<br \/>\n<a href=\"http:\/\/docs.libuv.org\/en\/v1.x\/threadpool.html\" rel=\"nofollow\">t\u00e4nu libuvile<\/a>. Iga\u00fchel neist on erinev t\u00f6\u00f6. Esimese eesm\u00e4rk on tegeleda mitteblokeerivate I\/O-operatsioonidega ja teine vastutab CPU-intensiivse t\u00f6\u00f6 ja samuti blokeerivate I\/O-operatsioonide eest.<\/p>\n<p><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/libuv.png\" alt=\"libuv diagramm\" title=\"libuv komponendid\" \/><\/p>\n<p>Aga mis on niit ja kuidas see erineb protsessist? Erinevusi on mitmeid, kuid k\u00f5ige olulisem on see, et <a href=\"https:\/\/thecodest.co\/et\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> on see, kuidas neile m\u00e4lu eraldatakse. Protsessist v\u00f5ib m\u00f5elda nagu rakendusest. Iga protsessi sees on \u00fcks osa m\u00e4lu, mis on p\u00fchendatud ainult sellele protsessile. Seega ei ole \u00fchel protsessil ligip\u00e4\u00e4su teise protsessi m\u00e4lule ja see omadus tagab k\u00f5rge turvalisuse. Et luua nendevaheline side, peame tegema m\u00f5ningaid t\u00f6id. Niidid on erinevad. Niidid jooksevad protsessi sees ja jagavad sama m\u00e4lu, seega ei ole \u00fcldse probleemi, et niidid jagavad \u00fchist m\u00e4lu <a href=\"https:\/\/thecodest.co\/et\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">andmed<\/a>.<\/p>\n<p>\u00dcks k\u00fcsimus tekitab siiski probleemi. Seda nimetatakse v\u00f5idujooksu tingimuseks. Niidid v\u00f5ivad t\u00f6\u00f6tada korraga, nii et kuidas me teame, milline l\u00f5peb esimesena? V\u00f5ib juhtuda, et esimesel korral l\u00f5peb esimene operatsioon esimesena, kuid j\u00e4rgmisel korral v\u00f5ib juhtuda vastupidi ja teine operatsioon l\u00f5peb enne esimest. Kujutage ette t\u00f6\u00f6d kirjutamis-\/lugemisoperatsioonidega sellistes tingimustes! \u00d5udusunen\u00e4gu! M\u00f5nikord on v\u00e4ga raske kirjutada korrektset <a href=\"https:\/\/thecodest.co\/et\/dictionary\/what-is-code-refactoring\/\">kood<\/a> mitmesuunalises keskkonnas.<\/p>\n<p>Samuti on mitmel\u00f5ngalistel keeltel suur m\u00e4lu koormus, sest nad loovad iga taotluse jaoks eraldi niidi; seega, kui soovite kutsuda 1000 taotlust, loovad nad 1000 niiti.<\/p>\n<p>Kuidas sellise probleemiga toime tulla? Kasutage hoopis \u00fchte l\u00f5nga! Ja see ongi see, mida <strong><a href=\"https:\/\/thecodest.co\/et\/dictionary\/what-is-node-js-used-for\/\">S\u00f5lme<\/a><\/strong> pakub teile.<\/p>\n<p><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/eventloop.png\" alt=\"\u00fche niidi s\u00fcndmusts\u00fckkel\" title=\"s\u00fcndmuse ts\u00fckli diagramm \" \/><\/p>\n<p>Nagu <strong><a href=\"https:\/\/thecodest.co\/et\/blog\/hire-javascript-developer\/\">JavaScript arendaja<\/a><\/strong> Ma julgustan teid vaatama <a href=\"https:\/\/youtu.be\/PNa9OMajw9w\" rel=\"nofollow\">film<\/a><br \/>\nmilles Bart Belder selgitab selgelt s\u00fcndmuse ts\u00fckli m\u00f5istet. \u00dclaltoodud diagramm on v\u00f5etud tema ettekandest. Ja kui te ei tea neid m\u00f5isteid \u00fcldse, siis nii <strong>S\u00f5lme<\/strong> ja Libuvil on suurep\u00e4rane dokumentatsioon \ud83d\ude42<\/p>\n<h2>Blokeerimisest<\/h2>\n<p>Veebilehel <strong><a href=\"https:\/\/thecodest.co\/et\/dictionary\/why-is-javascript-so-popular\/\">JavaScript<\/a> areng<\/strong> t\u00f6\u00f6stus \u00fctlevad, et kuna <strong>S\u00f5lme<\/strong> on \u00fchet\u00e4heline ja mitteblokeeriv, saab sama ressursiga saavutada suurema samaaegsuse kui mitmel\u00e4heliste lahenduste puhul. See on t\u00f5si, kuid see ei ole nii ilus ja lihtne, kui see v\u00f5ib tunduda.<\/p>\n<p>Kuna <strong>Node.js<\/strong> on \u00fchet\u00e4heline (<a href=\"https:\/\/thecodest.co\/et\/blog\/hire-vue-js-developers\/\">JS<\/a> osa), blokeerivad protsessorimahukad \u00fclesanded k\u00f5ik k\u00e4imasolevad p\u00e4ringud, kuni konkreetne \u00fclesanne on l\u00f5petatud. Seega on t\u00f5si, et <strong>Node.js<\/strong> saate blokeerida k\u00f5ik taotlused lihtsalt sellep\u00e4rast, et \u00fches neist oli blokeeriv k\u00e4sk sees. Blokeeriv kood t\u00e4hendab, et selle l\u00f5petamine v\u00f5tab rohkem kui paar millisekundit. Kuid \u00e4rge ajage pikka reageerimisaega segi blokeerimisega. Andmebaasi vastus v\u00f5ib v\u00f5tta v\u00e4ga kaua aega, kuid see ei blokeeri teie protsessi (rakendust).<\/p>\n<p>Blokeerivad meetodid t\u00e4idetakse s\u00fcnkroonselt ja mitteblokeerivad meetodid as\u00fcnkroonselt.<\/p>\n<p>Kuidas saab aeglustada (v\u00f5i blokeerida) oma s\u00fcndmuste ts\u00fcklit?<\/p>\n<ul>\n<li>haavatav regex - haavatav regulaaravaldis on see, mille puhul teie regulaaravaldise mootor v\u00f5ib v\u00f5tta eksponentsiaalselt aega; nende kohta saate lugeda mare'i.  <a href=\"https:\/\/nodejs.org\/en\/docs\/guides\/dont-block-the-event-loop\/\" rel=\"nofollow\">siin<\/a>,<\/li>\n<li>JSON-operatsioonid suurte objektidega,<\/li>\n<li>kasutades s\u00fcnkroonseid APIsid alates <strong>S\u00f5lme <\/strong>tuumamoodulid as\u00fcnkroonsete versioonide asemel; k\u00f5ik Node.js standardraamatukogu I\/O meetodid pakuvad ka oma as\u00fcnkroonseid versioone,<\/li>\n<li>muud programmeerimisvead, n\u00e4iteks s\u00fcnkroonne l\u00f5pmatu ts\u00fckkel.<\/li>\n<\/ul>\n<p>Kas sellisel juhul, kuna Worker Pool kasutab niitide kogumit, on v\u00f5imalik ka neid blokeerida? Kahjuks jah \ud83d\ude41<strong> S\u00f5lme<\/strong> p\u00f5hineb filosoofial <code>\u00fcks niit paljude klientide jaoks.<\/code> Oletame, et konkreetse T\u00f6\u00f6taja poolt t\u00e4idetav \u00fclesanne on v\u00e4ga keeruline ja vajab rohkem aega. Selle tulemusena on Worker blokeeritud ja teda ei saa kasutada teiste pooleliolevate \u00fclesannete t\u00e4itmiseks, kuni tema juhised on t\u00e4idetud. Nagu te ilmselt juba arvasite, v\u00f5ib see m\u00f5jutada j\u00f5udlust. Selliseid probleeme saab v\u00e4ltida, kui v\u00e4hendada \u00fclesannete aegade varieeruvust, kasutades \u00fclesannete partitsioneerimist.<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>V\u00e4ltige blokeerimist, see on kindel. Kui te ainult saate, valige alati standardse raamatukogu API-de as\u00fcnkroonseid versioone. Vastasel juhul v\u00f5ib kliendil p\u00e4rast rakenduse k\u00e4ivitamist tekkida mitmeid probleeme, alustades halvenenud l\u00e4bilaskev\u00f5imest ja l\u00f5petades t\u00e4ieliku loobumisega, mis on kasutaja seisukohast fataalne.<\/p>\n<p><article-inline-code-review><\/article-inline-code-review><\/p>\n<p><b>Loe edasi:<\/b><\/p>\n<p><a href=\"https:\/\/thecodest.co\/blog\/why-you-should-probably-use-typescript\">Miks peaksite (t\u00f5en\u00e4oliselt) kasutama Typescript'i<\/a><\/p>\n<p><a href=\"https:\/\/thecodest.co\/blog\/how-not-to-kill-a-project-with-bad-coding-practices\/\">Kuidas mitte tappa projekti halbade kodeerimistavadega?<\/a><\/p>\n<p><a href=\"https:\/\/thecodest.co\/blog\/data-fetching-strategies-in-nextjs\/\">NextJS-i andmete hankimise strateegiad<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\"\u00c4ra blokeeri s\u00fcndmuste ts\u00fcklit...\" - seda lauset oled ilmselt palju kordi kuulnud... Ma ei ole \u00fcllatunud, sest see on \u00fcks olulisemaid eeldusi Node'iga t\u00f6\u00f6tades. Kuid on ka teine \"asi\", mille blokeerimisest tuleks hoiduda - Worker Pool. Kui see unarusse j\u00e4tta, v\u00f5ib see oluliselt m\u00f5jutada rakenduse j\u00f5udlust ja isegi selle turvalisust.<\/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=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/et\/blogi\/ema-ta-blokeeris-jalle-teemasid\/\" \/>\n<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/blogi\/ema-ta-blokeeris-jalle-teemasid\/\" \/>\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 minutit\" \/>\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\":\"et\",\"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\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/#breadcrumb\"},\"inLanguage\":\"et\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/mom-he-blocked-threads-again\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"et\",\"@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\":\"et\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"et\",\"@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\":\"et\",\"@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\\\/et\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"EMA! Ta blokeeris j\u00e4lle teemasid! - The Codest","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\/et\/blogi\/ema-ta-blokeeris-jalle-teemasid\/","og_locale":"et_EE","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\/et\/blogi\/ema-ta-blokeeris-jalle-teemasid\/","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 minutit"},"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":"et","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":"EMA! Ta blokeeris j\u00e4lle teemasid! - 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","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/#breadcrumb"},"inLanguage":"et","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/mom-he-blocked-threads-again\/"]}]},{"@type":"ImageObject","inLanguage":"et","@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":"et"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"et","@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":"et","@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\/et\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/posts\/3459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/comments?post=3459"}],"version-history":[{"count":5,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/posts\/3459\/revisions"}],"predecessor-version":[{"id":7929,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/posts\/3459\/revisions\/7929"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/media\/3460"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/media?parent=3459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/categories?post=3459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/et\/wp-json\/wp\/v2\/tags?post=3459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}