<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/pikey/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя pikey]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sun, 26 Jul 2026 20:31:54 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Node.js наизнанку: не все происходит в пуле потоков]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/711804/</guid>
      <link>https://habr.com/ru/articles/711804/?utm_campaign=711804&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/183/903/602/1839036025b374ee5946645cad9c6522.png" /><p>Node.js это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом для выполнения JavaScript вне браузера. Он поддерживается движком <a href="https://v8.dev/docs" rel="noopener noreferrer nofollow">Google V8</a>, что делает его чрезвычайно производительным.</p><p><strong>Асинхронная среда выполнения, управляемая событиями</strong></p><p>Одно из наиболее распространенных утверждений, с которым мы сталкиваемся при знакомстве с Node, заключается в том, что он выполняется в одном потоке. Тем не менее каждый может задаться вопросом, как это возможно, что Node является одним из самых популярных инструментов для создания быстрых и масштабируемых API?</p><p>Технически, тот факт, что Node.js использует один поток не на 100% верно. Node.js на самом деле использует много потоков, но цикл событий (Event Loop - о котором мы упомянем позже), и пользовательский код выполняются в одном потоке. Если мы ознакомимся с документацией, то увидим, что Node.js использует управляемым событиями неблокирующую модель ввода-вывода (<em>event-driven, non-blocking I/O model</em>), которая делает его легким и эффективным.</p><p>Что такое управляемая событиями неблокирующая модель ввода-вывода?</p><p>Согласно <a href="https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/" rel="noopener noreferrer nofollow">руководству по Node.js</a>, блокирующие методы выполняются синхронно, а неблокирующие методы выполняются асинхронно. Предположим, что нам нужно написать некоторый код, чтобы прочитать содержимое файла и распечатать его в консоли. Есть два способа сделать это в узле: синхронно и асинхронно. </p><p><strong>Давайте сначала посмотрим синхронную версию:</strong></p><p>В приведённом ниже коде происходит следующее: во-первых, нужно подключить модуль <strong>FS</strong>. Во второй строке вызывается метод <strong>readFileSync</strong>, и результат сохраняется в переменной <strong>data</strong>. Основной поток Node.js блокирует эту строку до тех пор, пока не будет прочитано все содержимое файла. Затем содержимое выводиться в консоль, и, в самом конце будет выведено в консоль “Done”.</p> <a href="https://habr.com/ru/articles/711804/?utm_campaign=711804&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 20 Jan 2023 10:19:15 GMT</pubDate>
      <dc:creator><![CDATA[PiKey]]></dc:creator>
      <category><![CDATA[JavaScript]]></category><category><![CDATA[Node.JS]]></category>
      <category>event loop</category><category>event-driven</category><category>node.js</category><category>node</category><category>nodejs</category><category>node js</category><category>v8</category><category>async</category><category>asynchronous</category><category>asynchronous i/o</category>
    </item>
  

  

      

      

      

    
  </channel>
</rss>
