<?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/hubs/parallel_programming/articles/</link>
    <description><![CDATA[Параллельное программирование – распараллеливаем вычисления]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Tue, 28 Apr 2026 19:27:45 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[Франкенштейн на 30 ГБ RAM: Как мы пересадили мозг Gemma в скелет DeepSeek и сломали Transformers]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028910/</guid>
      <link>https://habr.com/ru/articles/1028910/?utm_campaign=1028910&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/331/a57/6e9/331a576e94621c7818617fda78f790d8.jpg" /><p> Операционная «Ghetto MLOps»: пересадка 31B-мозга Gemma в MoE-экзоскелет DeepSeek. Без наркоза и дообучения.  </p> <a href="https://habr.com/ru/articles/1028910/?utm_campaign=1028910&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 07:11:20 GMT</pubDate>
      <dc:creator><![CDATA[Livadies]]></dc:creator>
      
      <category><![CDATA[llm]]></category><category><![CDATA[deepseek]]></category><category><![CDATA[gemma]]></category><category><![CDATA[transformers]]></category><category><![CDATA[huggingface]]></category><category><![CDATA[pytorch]]></category><category><![CDATA[monkey patching]]></category><category><![CDATA[moe]]></category><category><![CDATA[kaggle]]></category><category><![CDATA[ghetto mlops]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Зачем нужна специализация варпов. Разбор сложных случаев]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020950/</guid>
      <link>https://habr.com/ru/articles/1020950/?utm_campaign=1020950&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a0e/d6c/4a6/a0ed6c4a6ea7d6832e136c2d8083879c.png" /><p><strong>Апдейт: идеи, изложенные в этой статье, позволили сформулировать оптимальные стратегии warp-специализации, описанные в научной публикации, которую можно посмотреть&nbsp;<a href="https://rohany.github.io/publications/twill.pdf" rel="noopener noreferrer nofollow">здесь</a>.</strong></p><p>Недавно я глубоко задумался о специализации варпов в контексте высокопроизводительных ядер для современных графических процессоров (GPU) на тензорных ядрах. Примеры таких процессоров — H100 и B200 от NVIDIA. Я стал полнее понимать, чего можно добиться при помощи специализации варпов, а также задался интересным вопросом: а нужна ли нам вообще специализация варпов (и вся та сложность, которую она с собой влечёт)? В итоге я пришёл к выводу, что, да, нуждаемся, но она не столь обязательна, как может показаться. В этом посте обсудим, в каких случаях без специализации варпов действительно не обойтись, а также я опишу, на каком пространстве компромиссов она зиждется, и какие границы этого пространства я вижу. Притом, что я обрисую некоторый контекст, касающийся графических процессоров, необходимый для обсуждения тем, которые мы взялись здесь рассмотреть, эту статью нельзя считать туториалом. Предполагается, что читатель имеет некоторый опыт работы с GPU и имеет опыт параллельного программирования.</p> <a href="https://habr.com/ru/articles/1020950/?utm_campaign=1020950&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Apr 2026 13:57:04 GMT</pubDate>
      <dc:creator><![CDATA[Sivchenko_translate]]></dc:creator>
      
      <category>CUDA</category><category>nvidia</category><category>программирование</category><category>компиляторы</category><category>параллелизм</category><category>gpu</category><category>тензорный процессор</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Параллелизм с общим состоянием в Rust]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1018592/</guid>
      <link>https://habr.com/ru/articles/1018592/?utm_campaign=1018592&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d1b/03b/995/d1b03b995953ab0705295ccf7d2147df.jpeg" /><p>Привет, Хабр! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.</p> <a href="https://habr.com/ru/articles/1018592/?utm_campaign=1018592&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 02 Apr 2026 15:15:21 GMT</pubDate>
      <dc:creator><![CDATA[MaksUnweb]]></dc:creator>
      
      <category><![CDATA[backend]]></category><category><![CDATA[backend-программирование]]></category><category><![CDATA[rust]]></category><category><![CDATA[параллелизм]]></category><category><![CDATA[параллельные вычисления]]></category><category><![CDATA[параллельное программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Множество Мандельброта — видео]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1016624/</guid>
      <link>https://habr.com/ru/articles/1016624/?utm_campaign=1016624&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/aab/320/938/aab320938f3ecb27fb22d9fb22466468.png" /><p>Анимация: генерирует последовательность из 255 высокоточных кадров в формате BMP (frame_000.bmp ... frame_254.bmp) и автоматически компилирует их в видеоролик (файл Mandelbrot.mp4) с частотой 30 кадров в секунду, используя встроенный FFmpeg.</p><p>Скачать последнюю версию (Windows и Linux)<br>В windows это Mandelbrot_windows.exe и ffmpeg.exe<br><a href="https://github.com/Divetoxx/Mandelbrot-Video/releases%EF%BF%BC%D0%92%D1%8B%D1%88%D0%B5" rel="noopener noreferrer nofollow">https://github.com/Divetoxx/Mandelbrot-Video/releases<br></a>Выше README содержит English и Русский!</p><p>FFmpeg - "швейцарский армейский нож" для обработки видео. В 2026 году он остается отраслевым стандартом, поддерживаемым сообществом разработчиков открытого программного обеспечения. От YouTube и Netflix до профессиональных киностудий - все на него полагаются. И да, он совершенно бесплатный.</p> <a href="https://habr.com/ru/articles/1016624/?utm_campaign=1016624&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 31 Mar 2026 07:00:56 GMT</pubDate>
      <dc:creator><![CDATA[aokoroko]]></dc:creator>
      
      <category><![CDATA[g++]]></category><category><![CDATA[c++]]></category><category><![CDATA[мандельброт]]></category><category><![CDATA[mandelbrot set]]></category><category><![CDATA[компьютерная анимация]]></category><category><![CDATA[программы]]></category><category><![CDATA[программирование]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[графика]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[GIL в Python для senior interview]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1013930/</guid>
      <link>https://habr.com/ru/articles/1013930/?utm_campaign=1013930&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/de5/1ed/564/de51ed5641cf3e90cc43b72608261233.png" /><p> GIL — самая известная «фича» Python, о которой большинство разработчиков знают ровно одну фразу: «мешает многопоточности». Этого хватает для джуна, но не для сеньора.</p><p>Статья построена так, чтобы после её прочтения вы могли не только ответить на вопросы по GIL на senior-интервью, но и объяснить коллеге-стажеру, что происходит внутри интерпретатора, когда два потока пытаются одновременно изменить один список.</p> <a href="https://habr.com/ru/articles/1013930/?utm_campaign=1013930&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 24 Mar 2026 07:30:30 GMT</pubDate>
      <dc:creator><![CDATA[ester_mrt]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[gil]]></category><category><![CDATA[backend]]></category><category><![CDATA[cpython]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Lattelua — когда Lua уже мало]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1011614/</guid>
      <link>https://habr.com/ru/articles/1011614/?utm_campaign=1011614&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/560/93e/01f/56093e01f9f7fa2da0843b3c556f490c.png" /><p>Если вы хоть раз встраивали Lua в свой проект — будь то игровой движок, высоконагруженный веб-сервер на <a href="https://openresty.org/" rel="noopener noreferrer nofollow">OpenResty</a> или конфигуратор сложного сетевого оборудования — вы знаете, за что мы его любим:)<br> А любим мы его — за компактность, быстроту, встраиваемость и предсказуемость. Не любим — за аскетичный синтаксис, отсутствие привычных конструкций и постоянное «изобретение велосипеда».<br> Эта статья — обзор диалекта <a href="https://github.com/mzujev/lattelua" rel="noopener noreferrer nofollow">Lattelua</a>: зачем он нужен, чем отличается от других диалектов, и почему его особенно удобно использовать в уже существующих проектах, где Lua — встраиваемый язык.</p> <a href="https://habr.com/ru/articles/1011614/?utm_campaign=1011614&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Погнали</a>]]></description>
      
      <pubDate>Wed, 18 Mar 2026 07:00:23 GMT</pubDate>
      <dc:creator><![CDATA[zmc]]></dc:creator>
      
      <category><![CDATA[Lua]]></category><category><![CDATA[moonscript]]></category><category><![CDATA[AST]]></category><category><![CDATA[parsers]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Множество Мандельброта. Суперсэмплинг 2x2 (4 прохода). DwmFlush — синхронизация с монитором 60 fps]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1011430/</guid>
      <link>https://habr.com/ru/articles/1011430/?utm_campaign=1011430&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8ab/aa8/a0c/8abaa8a0c94637e42c51bec9c44f9463.png" /><p>Множество Мандельброта. 80-бит FPU x87. OpenMP - параллельным программированием на уровне многопоточности. Синий, зеленый и красный - синусоидальными и косинусоидальными волнами: 127 + 127 <em> cos(2 </em> PI <em> a / 255) и 127 + 127 </em> sin(2 <em> PI </em> a / 255).  DwmFlush - синхронизация с монитором 60 fps. Суперсэмплинг 2x2 (4 прохода). Делал я. Посмотрите - движется! Я сделал на g++. Свободно распространяемого компилятора языка C++. Скачайте и посмотрите! Это экзешник, в ГитХаб.</p><p><strong><a href="https://github.com/Divetoxx/Mandelbrot-2/releases" rel="noopener noreferrer nofollow">github: Download Latest Version Windows And Source code</a></strong></p><p>Самое полезное - это увеличиваем / уменьшаем и центрируем. Вы на экран любое из множество Мандельброта. Какое вам нравится? Какое интересное? Вы можете все! И потом запишется в файл Mandelbrot.txt - три строки из файла. Вещественная часть центра и мнимая часть центра и ширина видимой области. Потом другая программа читает Mandelbrot.txt и создает Mandelbrot.bmp и уже не суперсэмплинг 2x2 (4 прохода) а 8x8 (64 прохода)!</p> <a href="https://habr.com/ru/articles/1011430/?utm_campaign=1011430&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 18 Mar 2026 05:00:38 GMT</pubDate>
      <dc:creator><![CDATA[aokoroko]]></dc:creator>
      
      <category><![CDATA[компьютерная анимация]]></category><category><![CDATA[g++]]></category><category><![CDATA[c++]]></category><category><![CDATA[мандельброт]]></category><category><![CDATA[mandelbrot set]]></category><category><![CDATA[программы]]></category><category><![CDATA[программирование]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[графика]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Множество Мандельброта. Суперсэмплинг 8x8 (64 прохода) — впервые в мире]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1010052/</guid>
      <link>https://habr.com/ru/articles/1010052/?utm_campaign=1010052&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/832/6d7/ee9/8326d7ee93e151ce48b34c0670b181f3.png" /><p>Вот так. Впервые в мире. Суперсэмплинг (SSAA) — ресурсоемкий метод сглаживания, увеличивающий число выборок на пиксель для повышения качества изображения. При значении 8x (N=8) сцена рендерится в разрешении, в 8 раз превышающем целевое, по обеим осям, создавая 64 (или 8 х 8) выборки на пиксель. Изображение просчитывается в более высоком разрешении, а затем принудительно уменьшается до разрешения дисплея, устраняя лесенки и улучшая чёткость. Это очень высокая нагрузка! Это не <strong>1920 на 1080</strong> пикселя а в 8x8 больше - <strong>15360 на 8640</strong> пикселя! Такое никто, кроме меня, делает в мире. Для множество Мандельброта.</p><p>Это маленькая утилита из командной строке. Которая либо читает Mandelbrot.txt три строки из файла - клавиша 7. И создает Mandelbrot.bmp<br>Либо клавиша 1-6 - это одно из шести разных мест множество Мандельброта и создает Mandelbrot.bmp<br>Скачайте и посмотрите. Это экзешник, в ГитХаб<br><strong><a href="https://github.com/Divetoxx/Mandelbrot/releases" rel="noopener noreferrer nofollow">Скачать последнюю версию (Windows и Linux)</a></strong> </p> <a href="https://habr.com/ru/articles/1010052/?utm_campaign=1010052&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 17 Mar 2026 05:00:55 GMT</pubDate>
      <dc:creator><![CDATA[aokoroko]]></dc:creator>
      
      <category><![CDATA[g++]]></category><category><![CDATA[c++]]></category><category><![CDATA[mandelbrot set]]></category><category><![CDATA[мандельброт]]></category><category><![CDATA[программы]]></category><category><![CDATA[программирование]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[графика]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Как мы подружили однопоточный C++ с многопоточным Rust]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1010062/</guid>
      <link>https://habr.com/ru/articles/1010062/?utm_campaign=1010062&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/588/39c/904/58839c9048237ca1fd4d442a82f19e07.png" /><p>Этот пост написан по мотивам выступления, с которым мы с Шисянь Ван ездили на конференцию <a href="https://luma.com/lt31g7a2" rel="noopener noreferrer nofollow">Rust UnConf</a>, организованную&nbsp;<a href="https://rust.nyc/" rel="noopener noreferrer nofollow">нью-йоркским сообществом Rust</a>. Конференция UnConf собрала поистине потрясающий коллектив энтузиастов a Rust, в компании которых мы более двух часов посвятили глубоким техническим дискуссиям (а также поеданию мороженого). Далее при необходимости я буду ссылаться на опыт нашей компании Antithesis.</p> <a href="https://habr.com/ru/articles/1010062/?utm_campaign=1010062&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 13 Mar 2026 21:00:04 GMT</pubDate>
      <dc:creator><![CDATA[Sivchenko_translate]]></dc:creator>
      
      <category>rust</category><category>с++</category><category>компиляторы</category><category>программирование</category><category>фаззинг-тестирование</category><category>оптимизация</category><category>исследование</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Нити и волокна (Threads &amp; Fibers)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1006576/</guid>
      <link>https://habr.com/ru/articles/1006576/?utm_campaign=1006576&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/af1/5ff/016/af15ff016322be9bc2196c4cc4e9e128.png" /><p>Всем привет! Меня зовут Сергей и последнее время я занимаюсь backend-разработкой на Scala. Вообще, мой опыт асинхронного программирования на Scala и C# составляет более десяти лет, и за это время сложилось вполне достаточное понимание этой темы. Во всяком случае, тогда мне так казалось…</p><p>Но недавно в беседе с коллегами обнаружились большие проблемы в моём «понимании», что мотивировало детально разобраться в этом вопросе.</p> <a href="https://habr.com/ru/articles/1006576/?utm_campaign=1006576&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 04 Mar 2026 16:06:55 GMT</pubDate>
      <dc:creator><![CDATA[Underskyer1]]></dc:creator>
      
      <category><![CDATA[scala]]></category><category><![CDATA[асинхронность]]></category><category><![CDATA[асинхронное программирование]]></category><category><![CDATA[потоки]]></category><category><![CDATA[нити]]></category><category><![CDATA[корутины]]></category><category><![CDATA[direct style]]></category><category><![CDATA[волокна]]></category><category><![CDATA[threads]]></category><category><![CDATA[fibers]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Множество Мандельброта. 32-бит TrueColor. 60 FPS. 80-бит long double. OpenMP. Суперсэмплинг 2x2 (4 прохода). И цвета]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1001498/</guid>
      <link>https://habr.com/ru/articles/1001498/?utm_campaign=1001498&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/74b/c32/6f0/74bc326f0d20b61789cc9e5e4dc89de3.png" /><p>Множество Мандельброта. 32-бит TrueColor. 60 FPS. 80-бит long double. OpenMP. Суперсэмплинг 2x2 (4 прохода). И цвета. Я хочу сказать. Это самая нужная вещь во Вселенной. Самая глубокое. И я сейчас за всю жизнь наконец стал писать код и сделал. Довольно сложное. И самое прекрасное. Скачайте и посмотрите! Это экзешник, в ГитХаб.</p><p><strong><a href="https://github.com/Divetoxx/Mandelbrot-2/releases" rel="noopener noreferrer nofollow">github: Download Latest Version Windows And Source code</a></strong></p> <a href="https://habr.com/ru/articles/1001498/?utm_campaign=1001498&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 25 Feb 2026 05:00:53 GMT</pubDate>
      <dc:creator><![CDATA[aokoroko]]></dc:creator>
      
      <category><![CDATA[компьютерная анимация]]></category><category><![CDATA[g++]]></category><category><![CDATA[c++]]></category><category><![CDATA[мандельброт]]></category><category><![CDATA[mandelbrot set]]></category><category><![CDATA[программы]]></category><category><![CDATA[программирование]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[графика]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Опыт эксплуатации дронов DJI Ryze Tello и Geoscan Pioneer Mini в образовательном центре «Точка роста»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1002026/</guid>
      <link>https://habr.com/ru/articles/1002026/?utm_campaign=1002026&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/493/506/07d/49350607dddb1ea8ce637c6eab158740.png" /><p>Чем отличаются китайские дроны Tello от российских «Геоскан» и как они применяются в образовании школьников: практический опыт в Центре гуманитарных и цифровых профилей «Точка роста».</p> <a href="https://habr.com/ru/articles/1002026/?utm_campaign=1002026&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 20 Feb 2026 16:45:30 GMT</pubDate>
      <dc:creator><![CDATA[dalopq]]></dc:creator>
      
      <category><![CDATA[Квадрокоптеры]]></category><category><![CDATA[БПЛА]]></category><category><![CDATA[Точка роста]]></category><category><![CDATA[Робототехника]]></category><category><![CDATA[Geoscan]]></category><category><![CDATA[Tello]]></category><category><![CDATA[DJI]]></category><category><![CDATA[Образование]]></category><category><![CDATA[Школа]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Множество Мандельброта — видео! 60 FPS и вращение — анимация. И суперсэмплингом. И распараллеливаем. На C++]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/987598/</guid>
      <link>https://habr.com/ru/articles/987598/?utm_campaign=987598&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/26c/a57/d5d/26ca57d5d1985b4cd85dc0249053c75c.png" /><p>Множество Мандельброта. 60 fps. Вращение - анимация. Делал я. Она движется! И это - программа! Я сделал на g++. Свободно распространяемого компилятора языка C++. Почитайте! Очень интересно. Используя OpenMP, вы занимаетесь параллельным программированием на уровне многопоточности. И суперсэмплингом (антиалиасингом), выполняют сглаживание 8x8 (всего 64 прохода на один пиксель). Это позволяет получить плавные градиенты, которые 24-битного цвета TrueColor! И как делать видео с 255 файлов bmp - TrueColor анимация.</p> <a href="https://habr.com/ru/articles/987598/?utm_campaign=987598&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 27 Jan 2026 06:00:58 GMT</pubDate>
      <dc:creator><![CDATA[aokoroko]]></dc:creator>
      
      <category><![CDATA[g++]]></category><category><![CDATA[c++]]></category><category><![CDATA[мандельброт]]></category><category><![CDATA[mandelbrot set]]></category><category><![CDATA[компьютерная анимация]]></category><category><![CDATA[ии]]></category><category><![CDATA[программы]]></category><category><![CDATA[программирование]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[графика]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Всего одна строка кода, из-за которой 24-ядерный сервер стал работать медленнее ноутбука]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/986810/</guid>
      <link>https://habr.com/ru/articles/986810/?utm_campaign=986810&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4b3/2a2/6c0/4b32a26c0e2ca850481050d1d5ae1808.png" /><p>Допустим, вы написали код для решения задачи, которая хорошо распараллеливается. Каждый поток занимается своим участком работы и не зависит от других, поэтому потоки почти не должны координироваться друг с другом, за исключением самого последнего этапа, когда требуется объединить результаты. Естественно, в данном случае логично предположить, что чем больше ядер задействуется для такого кода, тем быстрее он выполнится. Вы ставите бенчмарки и сначала прогоняете этот код на ноутбуке. Действительно, оказывается, что он практически идеально масштабируется на всех четырёх доступных ядрах. Затем вы прогоняете его на большой и пафосной многопроцессорной машине, рассчитывая, что производительность будет ещё выше — но убеждаетесь, что на практике этот код работает даже медленнее, чем на ноутбуке, сколько бы ядер под него не выделить. Да, именно с таким случаем мне однажды довелось столкнуться.</p> <a href="https://habr.com/ru/articles/986810/?utm_campaign=986810&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 19 Jan 2026 21:34:58 GMT</pubDate>
      <dc:creator><![CDATA[Sivchenko_translate]]></dc:creator>
      
      <category>Cassandra</category><category>многоядерность</category><category>высокая производительность</category><category>пропускная способность</category><category>узкое место</category><category>кэш процессора</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Правильный вопрос, но  безумный ответ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/984142/</guid>
      <link>https://habr.com/ru/articles/984142/?utm_campaign=984142&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fd7/b97/9b6/fd7b979b6ae89cffced744c1ab4f1507.jpg" /><p>Просматривая на Хабре поток «Параллельное программирование», не верится, что на дворе «образованный век». Все против этого. Особенно статьи типа «Три способа менять один объект из нескольких потоков. Больше нет». </p><p>Ныне любой, кому&nbsp; поступило «поручение» провести ту или иную идею в массы, может городить любую чушь. А «народ» будет верить. Жечь свечи,&nbsp; восклицать аллилуйя, бить поклоны, рукоплескать и, размазывая слезы, биться в экстазе от восторга, восхищения и прозрения. </p><p>Ну, а здесь на Хабре, ставить «плюсы». Каждый, конечно, имеет право на свою позицию. Но в чем-то хочется разобраться,&nbsp; понять и, возможно, простить. Накопилось, наверное…</p><p>Упомянутая статья - «гром среди ясного неба»! Ни кто до этого не знал, что делать с одним объектом, а тут вдруг - прозрение! Буквально на раз или, что точнее, на три. Есть ровно три варианта, после чего «объекту» уже не скрыться от «потоков», у которых до него дотянуться руки. Ровно три! Меньше – да, «больше нет»!</p><p>Люди, вы пытаетесь вникнуть в смысл прочитанного?!&nbsp;&nbsp; Спросите, где он? А вот это уже другой вопрос. На, который, к счастью, есть ответ… В научном познании мира.</p><p>Однако, процитирую отрывок из краеугольной, судя по реакции «народа», &nbsp;статьи...</p> <a href="https://habr.com/ru/articles/984142/?utm_campaign=984142&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 11 Jan 2026 09:59:31 GMT</pubDate>
      <dc:creator><![CDATA[lws0954]]></dc:creator>
      
      <category><![CDATA[параллелизм]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[теория]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Автоматы, потоки. Логические схемы. Задержка распространения]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/982868/</guid>
      <link>https://habr.com/ru/articles/982868/?utm_campaign=982868&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/622/ad4/b0b/622ad4b0be2cb7f50cd55ad344e50f84.png" /><p>Это первая статья цикла, предусматривающего рассмотрение логических схем или, более общо, логических процессов. Будет создан базис из логических элементов, позволяющих собрать любую схему. Специалистам, погруженным в бизнес-процессы, такая тема может показаться не стоящей внимания. Но мне тоже не понятно, почему бизнес-процессы выделяют в отдельную категорию. С формальной точки зрения они ни чем не отличаются от любых других процессов. </p><p>Таким образом, если вас интересуют общие проблемы параллельных процессов, то в этой и в последующих статьях на примере логических процессов мы их и рассмотрим. Терминологически мы будем придерживаться словаря по вычислительной технике под редакцией В.Иллингоута[1]. &nbsp;Но это может быть учебная литература, подобная [2], научная литература, как монография&nbsp; [3], или научно-популярные книги типа [4, 5]. </p><p>Литературы по автоматам много. Бум пришелся на 80-е годы прошлого века, а сейчас лишь отголоски прошлого. Поэтому, с одной стороны, такой информационный массив &nbsp;позволяет выбрать наиболее подходящую литературу, но, с другой стороны, орождает множество толкований модели автомата, среди которых разобраться не так уж просто. </p><p>У меня сформировался свой вариант модели конечного автомата&nbsp; (КА), который далее будет основным. Данная модель, во-первых, очень близка к классической форме. А это важно, т.к. позволяет использовать теорию почти без исключений. А, во-вторых, &nbsp;она удобна для практики программирования, допуская эффективную ее реализацию.&nbsp; Более детально все эти вопросы освещены в статье [6].</p> <a href="https://habr.com/ru/articles/982868/?utm_campaign=982868&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 04 Jan 2026 19:54:19 GMT</pubDate>
      <dc:creator><![CDATA[lws0954]]></dc:creator>
      
      <category><![CDATA[параллельное программирование]]></category><category><![CDATA[автоматное программирование]]></category><category><![CDATA[схемотехника]]></category><category><![CDATA[c++]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Есть ли толк от E-ядер в OpenMP приложениях?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/982640/</guid>
      <link>https://habr.com/ru/articles/982640/?utm_campaign=982640&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/47a/1a4/8cd/47a1a48cd0c0ea558075d35d4d444457.jpg" /><p>В&nbsp;настоящее время многоядерные процессоры с&nbsp;гетерогенными архитектурами, в&nbsp;которых сочетаются ядра с&nbsp;различной производительностью, становятся всё более и более распространенными. Если ещё пару лет назад такие архитектуры&nbsp;были в&nbsp;основном распространены в&nbsp;мобильном сегменте (см. <a href="https://en.wikipedia.org/wiki/ARM_big.LITTLE" rel="noopener noreferrer nofollow">ARM BIG.little</a>), то с&nbsp;анонсом в 2022&nbsp;году компанией Intel процессоров 12-го поколения&nbsp;линейки Intel Core, такие процессоры стали распространяться в&nbsp;сегменте десктопов и рабочих станций. Однако, до&nbsp;сих пор остается открытым вопрос&nbsp;— необходимо&nbsp;ли каким‑то специальным образом учитывать особенности данных архитектур для&nbsp;достижения максимальной многопоточной производительности?</p> <a href="https://habr.com/ru/articles/982640/?utm_campaign=982640&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 04 Jan 2026 17:15:55 GMT</pubDate>
      <dc:creator><![CDATA[AlexMatveev]]></dc:creator>
      
      <category><![CDATA[c++]]></category><category><![CDATA[openmp]]></category><category><![CDATA[высокая производительность]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Больше ядер, а не более быстрые ядра]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/980220/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/980220/?utm_campaign=980220&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fdb/080/131/fdb080131003e87707f04e2cf7a4d6b0.png" /><p>Команда&nbsp;<a href="https://t.me/+acrI2N6q080wZjM6">Spring АйО</a>&nbsp;подготовила перевод статьи в которой автор разбирает, где параллельные стримы действительно масштабируются, а где создают накладные расходы, конкуренцию за ресурсы и иллюзию производительности. Коротко: сначала аналитика и измерения, потом — параллелизм.</p> <a href="https://habr.com/ru/articles/980220/?utm_campaign=980220&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 24 Dec 2025 15:18:56 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>java</category><category>streams</category><category>concurrency</category><category>jvm</category><category>optimization</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Инь и ян программирования или alter ego многопоточности]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/978350/</guid>
      <link>https://habr.com/ru/articles/978350/?utm_campaign=978350&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/46a/14f/e7c/46a14fe7c9c74939b45cdf632d11ade1.jpg" /><p>Происходит вполне осязаемый процесс зомбирования многопоточностью. А потому хотелось бы кое-что уточнить, конкретизировать, что можно считать параллельными вычислениями и, соответственно, параллельным программированием, а что нельзя. </p><p>&nbsp;Предположим, перед вами «черный ящик». Это может быть, к примеру, ваш комп , ноут или хотя бы смартфон. Нет внешних критериев, по которым вы могли бы идентифицировать алгоритм его работы. В смысле параллельный он или последовательный. Следовательно, <strong><em>для любой последовательной программы должен быть универсальный формальный механизм, преобразующий ее в эквивалентную параллельную программу и наоборот</em></strong>.</p><p>&nbsp;Уже давно известны универсальные модели последовательных алгоритмов, такие как машина Тьюринга или машина Поста. Есть и другие модели, но без потери общности вполне можно ограничиться упомянутыми. Но <s>современный</s> собеседник буквально впадает в ступор, когда речь заходит о&nbsp; модели параллельных вычислений. </p><p>Но так было не всегда. В 80-х годах прошлого века математики, программисты и другие, причастные к процессу алгоритмизации и программирования, пытались такую модель создать. К сожалению, все, похоже, завершилось <s>автоматом</s> сетями Петри. Но даже с учетом столь печального факта, как не успешность таких поисков, <strong><em>должна существовать, как и в случае последовательных алгоритмов, модель параллельных алгоритмов. </em></strong>Без нее разговоры об упомянутом выше&nbsp; преобразовании алгоритмов просто не имеют смысла.</p><p>В силу философского закона единства и борьбы&nbsp; противоположностей, когда есть одно, то должно быть и другое. Так, если есть свет, то, как ни крути, будет и тьма. Когда есть хорошее, то рано или поздно, как ни избегай, будет и плохое (жизнь, как известно, в полоску). А если есть последовательное программирование, то должно быть, как его ни назови, альтернативное ему - параллельное. А если уж оно есть или, как минимум, обсуждается, то необходимо дать ему определение, аналогичное по смыслу моделями обычных алгоритмов. Все это естественно и даже очевидно, когда речь идет о научных понятиях и, как в нашем случае, о науке программирования.</p> <a href="https://habr.com/ru/articles/978350/?utm_campaign=978350&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 19 Dec 2025 06:30:56 GMT</pubDate>
      <dc:creator><![CDATA[lws0954]]></dc:creator>
      
      <category><![CDATA[параллельное программирование]]></category><category><![CDATA[автоматное программирование]]></category><category><![CDATA[матлаб]]></category><category><![CDATA[simintech]]></category><category><![CDATA[qt]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Два притопа, три прихлопа]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/975032/</guid>
      <link>https://habr.com/ru/articles/975032/?utm_campaign=975032&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7d4/806/f15/7d4806f15415b0d7bc86d10112000d18.png" /><p>Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку.&nbsp; К чему это привело, далее мы и поговорим.</p><p>Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне. </p> <a href="https://habr.com/ru/articles/975032/?utm_campaign=975032&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 09 Dec 2025 18:07:40 GMT</pubDate>
      <dc:creator><![CDATA[lws0954]]></dc:creator>
      
      <category><![CDATA[автоматное программирование]]></category><category><![CDATA[параллельное программирование]]></category><category><![CDATA[дейкстра]]></category><category><![CDATA[c++]]></category><category><![CDATA[esp32]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Три способа менять один объект из нескольких потоков. Больше нет]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/974198/</guid>
      <link>https://habr.com/ru/articles/974198/?utm_campaign=974198&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6fb/cd2/5c4/6fbcd25c4f9ccb89cb4210b42a0535a4.jpg" /><p>Три способа менять один объект из нескольких потоков. Больше нет</p><p>Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor…</p><p>Когда читаешь про многопоточность, кажется, что способов — десятки, и каждый требует отдельного изучения.</p><p>На самом деле их <strong>ровно три</strong>. Всё остальное — реализации и комбинации.</p><p>Эта статья — попытка навести порядок в голове. После неё вы сможете:</p><p>за 5 секунд классифицировать любой подход к конкурентности;<br> понимать, почему Erlang выбрал акторы, а Java предлагает <code>synchronized</code>;<br> не изобретать велосипеды и не зацикливаться на «единственно правильном» решении;<br> проектировать многопоточный код, держа в голове простую модель.</p><p>Заодно, покажу почему ООП вообще не было изначально спроектировано под многопоток.</p> <a href="https://habr.com/ru/articles/974198/?utm_campaign=974198&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 07 Dec 2025 15:42:17 GMT</pubDate>
      <dc:creator><![CDATA[Dhwtj]]></dc:creator>
      
      <category><![CDATA[параллелизм]]></category><category><![CDATA[параллельное программирование]]></category><category><![CDATA[классификатор]]></category><category><![CDATA[lock-free]]></category><category><![CDATA[atomic swap]]></category><category><![CDATA[атомики]]></category><category><![CDATA[конкурентность]]></category><category><![CDATA[программирование]]></category><category><![CDATA[Угадай писал человек или LLM]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Искусство выжить. Простое руководство для настоящих программистов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/969036/</guid>
      <link>https://habr.com/ru/articles/969036/?utm_campaign=969036&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/467/35a/a5f/46735aa5f34d50a69419ccc18bbf6223.gif" /><p>Задача Эдсгера Дейкстры о философах – великая задача великого программиста. Уж сколько лет, а она актуальна. Решая ее, прикасаешься к этому величию. И вот, перефразируя известное, «давно не было такого и вот опять», можно познакомиться с ее «новым прочтением» на <a href="https://habr.com/ru/articles/951224/" rel="noopener noreferrer nofollow">Хабре</a>[1]. </p><p>Ну, как новое?… Но она стала тем триггером, который подвигнул меня к очередной попытке ее решения. Тем более, что с момента знакомства с философами пролетела уйма лет, а в&nbsp; багаже - опыт применения автоматной модели и значительно усовершенствованная среда их реализации. </p><p>Познакомился с проблемой обедающих философов – Dinning Philosopher Problem (DPP), я более двадцати лет тому назад (про <a href="https://www.state-machine.com/doc/AN_DPP.pdf" rel="noopener noreferrer nofollow">DPP </a>см. [2]). Результатом стала статья, в которой философы выполняли поставленную задачу, как минимум, не хуже, чем классические алгоритмы <a href="https://www.osp.ru/os/2004/05/184293" rel="noopener noreferrer nofollow">сортировок</a>[3]. Позднее был сделан доклад на конференции по параллельным вычислениям в Саратове, где на суд научной общественности была предъявлена модель автоматных параллельных вычислений и пример ее приложения - задача <a href="https://elibrary.ru/item.asp?edn=tisrrp" rel="noopener noreferrer nofollow">Дейкстры</a>[4]. &nbsp;</p><p><strong><em>Замечание 1</em></strong><em>. В рамках обсуждения статьи на Хабре было проигнорировано&nbsp; предложение поручить сортировку философам. Зря, конечно, т.к. надо же как-то убедиться, что предлагаемое решение работает хотя бы в первом приближении. К примеру, тот же DeepSeek, моментально выдавший свое решение DPP, так и не смог заставить их сортировать. </em></p><p>Не знаю, считается ли данная задача решенной, но то, с чем я знаком, по большей части беглое рассмотрение проблем, которые она отражает. У задачи есть теория, которая представлена монографией Хоара[5], или моделями сетей Петри у Питерсона[6] и В.Е. Котова[7] или другими подобными публикациям. Но, повторюсь, все это по большей части достаточно краткий анализ свойств модели и/или даже конкретного решения. Статья на Хабре из этой же серии. Все это ни как не окончательное решение описываемых ею проблем параллелизма. Правда, может, [авторами] вопрос так и не ставился, но все же ответ на него весьма желательно иметь. </p> <a href="https://habr.com/ru/articles/969036/?utm_campaign=969036&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 21 Nov 2025 20:46:36 GMT</pubDate>
      <dc:creator><![CDATA[lws0954]]></dc:creator>
      
      <category><![CDATA[автоматное программирование]]></category><category><![CDATA[параллельное программирование]]></category><category><![CDATA[дейкстра]]></category><category><![CDATA[с++]]></category><category><![CDATA[микроконтроллеры]]></category><category><![CDATA[сортировки]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как работает компьютер. Простая статья для начинающих программистов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/964572/</guid>
      <link>https://habr.com/ru/articles/964572/?utm_campaign=964572&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/722/8d8/b73/7228d8b73859ea897084190309c294b4.png" /><p>В этой статье изложено всё, что нужно знать об устройстве компьютера с точки зрения программиста. Сюда входят сведения о том, для чего нужен тактовый генератор, регистры, кэши и виртуальная память; что такое архитектура процессора; что такое машинный код и код ассемблера; чем отличается компиляция в машинный код в C, C++ или Rust от компиляции в байт-код виртуальной машины в языках типа Java и C#; в чём их отличие от интерпретируемых языков вроде JavaScript или Python; что такое динамические и статические библиотеки (.dll/.so, .lib/.a); что такое фреймворк; что такое API и web-API; и что собой представляет параллельное программирование с использованием многоядерных процессоров, векторных регистров и видеокарт.</p> <a href="https://habr.com/ru/articles/964572/?utm_campaign=964572&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 09 Nov 2025 15:58:05 GMT</pubDate>
      <dc:creator><![CDATA[taydvax]]></dc:creator>
      
      <category><![CDATA[процессор]]></category><category><![CDATA[кэш]]></category><category><![CDATA[регистр]]></category><category><![CDATA[виртуальная память]]></category><category><![CDATA[компиляция]]></category><category><![CDATA[интерпретаторы]]></category><category><![CDATA[параллелизм]]></category><category><![CDATA[gpu]]></category><category><![CDATA[векторные операции]]></category><category><![CDATA[api]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Concurrency на примерах. Собственная реализация Mutex на Go + сравнение с sync.Mutex. Часть 1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/956690/</guid>
      <link>https://habr.com/ru/articles/956690/?utm_campaign=956690&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Хочу поделиться с вами заметкой о своем опыте написания с нуля примитивов синхронизации на чистом Go, совместимых c реализациями из стандартной библиотеки. </p><p>Цель заметки - на понятных примерах посмотреть как работает под капотом то чем мы пользуемся регулярно как разработчики, а также разобраться с популярными проблемами возникающими при написании многопоточных программ.</p> <a href="https://habr.com/ru/articles/956690/?utm_campaign=956690&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 15 Oct 2025 10:09:04 GMT</pubDate>
      <dc:creator><![CDATA[lebron32rus]]></dc:creator>
      
      <category><![CDATA[Golang]]></category><category><![CDATA[Go]]></category><category><![CDATA[concurrency]]></category><category><![CDATA[mutex]]></category><category><![CDATA[goroutines]]></category><category><![CDATA[synchronization]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Книга «C# Concurrency. Асинхронное программирование и многопоточность» в правильном переводе команды DotNetRu]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/946512/</guid>
      <link>https://habr.com/ru/articles/946512/?utm_campaign=946512&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0de/cc9/27b/0decc927b16ba4aed0ca979c16cc36c8.png" /><p>Сообщество DotNetRu совместно с издательством «Питер» завершило перевод книги Нира Добовицки «C# Concurrency». Мы тщательно выверили терминологию, сгладили стиль и сохранили точность оригинала. Это практическое руководство для тех, кто хочет уверенно проектировать конкурентные компоненты на .NET 8/9 — без догадок и шаманства.</p><p>Возможно вы уже <a href="https://habr.com/ru/companies/piter/articles/941590/" rel="noopener noreferrer nofollow">читали</a> анонс от издательства, а в этой статье традиционно поделимся нашим мнением о книге и расскажем про работу над переводом.</p> <a href="https://habr.com/ru/articles/946512/?utm_campaign=946512&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 15 Sep 2025 07:20:50 GMT</pubDate>
      <dc:creator><![CDATA[m_a_d]]></dc:creator>
      
      <category><![CDATA[book]]></category><category><![CDATA[dotnetru]]></category><category><![CDATA[concurrency]]></category><category><![CDATA[multithreading]]></category><category><![CDATA[async]]></category><category><![CDATA[await]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Почему асинхронный Python не такой популярный?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/943878/</guid>
      <link>https://habr.com/ru/articles/943878/?utm_campaign=943878&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3c6/368/467/3c63684673df5f18c030f7a91eea289e.jpg" /><p>Недавно на Youtube появилась <a href="https://www.youtube.com/watch?v=GfH4QL4VqJ0&amp;pp=ygUScHl0aG9uIGRvY3VtZW50YXJ5" rel="noopener noreferrer nofollow">документалка о Python</a>. Примерно в середине ленты есть драматический эпизод о том, как переход от Python 2 к 3 разделил сообщество (спойлер:&nbsp;<a href="https://blog.jetbrains.com/pycharm/2025/08/the-state-of-python-2025/#most-still-use-older-python-versions-despite-benefits-of-newer-releases" rel="noopener noreferrer nofollow">в конечном итоге этого не случилось</a>).</p><p>Первые версии Python 3 (3.0-3.4) в основном делали упор на стабильность и упрощение перехода пользователей с версии 2.7. В 2015 была выпущена версия 3.5 с новой фичей:&nbsp;<a href="https://peps.python.org/pep-0492/" rel="noopener noreferrer nofollow">ключевыми словами <code>async</code>&nbsp;и <code>await</code>&nbsp;для выполнения корутин</a>.</p><p>Миновало десять лет и девять релизов, <a href="https://peps.python.org/pep-0745/" rel="noopener noreferrer nofollow">через считанные недели</a> выпустят финальную версию Python 3.14.</p><p>Пока все отвлеклись на фичи разноцветного REPL в 3.14, в release notes появились серьёзные заявления, связанные с конкурентностью и параллелизмом.</p> <a href="https://habr.com/ru/articles/943878/?utm_campaign=943878&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 04 Sep 2025 12:30:51 GMT</pubDate>
      <dc:creator><![CDATA[PatientZero]]></dc:creator>
      
      <category>конкурентность</category><category>параллелизм</category><category>gil</category><category>async</category><category>await</category><category>asyncio</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Книга: «C# Concurrency. Асинхронное программирование и многопоточность»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/piter/articles/941590/</guid>
      <link>https://habr.com/ru/companies/piter/articles/941590/?utm_campaign=941590&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/14b/732/f10/14b732f10d0aa104014b5ffb8bc5808d.jpg" /><p>Привет, Хаброжители! Асинхронные и многопоточные программы могут выполнять несколько задач одновременно, не теряя скорости или надежности. Но правильная организация параллельного выполнения может вызвать затруднения даже у опытных разработчиков. Эта практическая книга научит вас создавать параллельные приложения на C#, работающие с максимальной скоростью и не имеющие взаимоблокировок и других проблем синхронизации, которые ухудшают производительность и требуют огромных усилий для их обнаружения.<br><br>«C# Concurrency» помогает получить полное представление об особенностях многопоточности и асинхронного программирования. В ней особое внимание уделено практическому использованию операторов async/await в C# для упрощения асинхронных задач. Вы научитесь избегать распространенных ошибок, обходить классические проблемы многопоточности, такие как состояния взаимоблокировки и гонки, а также узнаете о многих сложных нюансах управления потоками и использования потокобезопасных коллекций.</p> <a href="https://habr.com/ru/articles/941590/?utm_campaign=941590&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 04 Sep 2025 12:22:34 GMT</pubDate>
      <dc:creator><![CDATA[ph_piter (Издательский дом «Питер»)]]></dc:creator>
      
      <category><![CDATA[c#]]></category><category><![CDATA[приложения]]></category><category><![CDATA[concurrency]]></category><category><![CDATA[программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Эльбрус-2 в сравнении с основными суперкомпьютерами 1960–1980-х годов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/942060/</guid>
      <link>https://habr.com/ru/articles/942060/?utm_campaign=942060&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Многопроцессорный вычислительный комплекс (МВК) «Эльбрус-2», созданный в СССР в 1984–1985 годах, является выдающимся достижением советской вычислительной техники и заслуживает высокой оценки по ряду ключевых параметров — числу процессоров, архитектуре и производительности, существенно опережающим многие зарубежные аналоги своего времени.</p> <a href="https://habr.com/ru/articles/942060/?utm_campaign=942060&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 29 Aug 2025 12:15:56 GMT</pubDate>
      <dc:creator><![CDATA[vvmtutby]]></dc:creator>
      
      <category><![CDATA[суперкомпьютер]]></category><category><![CDATA[эльбрус]]></category><category><![CDATA[мэинфреймы]]></category><category><![CDATA[vliw]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как избежать кошмара параллелизма в IoT: автоматы вместо потоков и корутин]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/937448/</guid>
      <link>https://habr.com/ru/articles/937448/?utm_campaign=937448&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5f9/c3f/15a/5f9c3f15a061791af701aa70e41bb52e.png" /><p>В&nbsp;статье рассматривается библиотека на&nbsp;C++, которая предназначена для&nbsp;реализации технологии параллельного автоматного программирования (АП), отвечающей концепции среды ВКПа (подробнее о&nbsp;ней см. [1]). Для&nbsp;полного понимания материала рекомендуется ознакомиться с&nbsp;основами теории АП, представленной в&nbsp;статьях [2, 3, 4], Взаимосвязь машины Тьюринга с&nbsp;конечными автоматами (КА) подробно рассмотрена в [5]. Вопросы применения корутин в&nbsp;контексте автоматного программирования анализируются в&nbsp;статьях [6–9]. Но&nbsp;в&nbsp;минимальном варианте достаточно даже общего представления о&nbsp;модели конечного автомата и принципах объектного программирования.</p> <a href="https://habr.com/ru/articles/937448/?utm_campaign=937448&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 15 Aug 2025 08:26:07 GMT</pubDate>
      <dc:creator><![CDATA[lws0954]]></dc:creator>
      
      <category><![CDATA[автоматное программирование]]></category><category><![CDATA[с++]]></category><category><![CDATA[микроконтроллеры]]></category><category><![CDATA[esp32]]></category><category><![CDATA[vscode]]></category><category><![CDATA[platformio]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Практический CQRS и Event Sourcing на Go]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/932510/</guid>
      <link>https://habr.com/ru/articles/932510/?utm_campaign=932510&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/39d/bf1/8fb/39dbf18fb7b6eb53eb6a1cf40319efba.png" /><p>Event Sourcing и CQRS — это мощные архитектурные подходы, которые заменяют традиционное CRUD-управление состоянием на журналирование событий и разделение операций записи и чтения для масштабируемости и надежности. Вместо прямого изменения данных система сохраняет каждое изменение как событие, что обеспечивает полный аудит, контроль конкурентности и гибкость в обработке данных.</p> <a href="https://habr.com/ru/articles/932510/?utm_campaign=932510&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 30 Jul 2025 14:54:43 GMT</pubDate>
      <dc:creator><![CDATA[alserok]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[golang]]></category><category><![CDATA[cqrs]]></category><category><![CDATA[event sourcing]]></category><category><![CDATA[backend]]></category><category><![CDATA[architecture]]></category><category><![CDATA[system design]]></category><category><![CDATA[микросервисы]]></category><category><![CDATA[архитектура]]></category><category><![CDATA[microservices]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Efficient Computer: программируем по кафелю]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/931536/</guid>
      <link>https://habr.com/ru/articles/931536/?utm_campaign=931536&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ebd/a04/fc5/ebda04fc56407bccd6fc02161aff2636.png" /><p>Экспериментируем с компилятором для новой не Фон-Неймановской архитектуры, обещающей повышение энергоэффективности в 100 раз.</p> <a href="https://habr.com/ru/articles/931536/?utm_campaign=931536&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 27 Jul 2025 22:34:26 GMT</pubDate>
      <dc:creator><![CDATA[nonpareil_coder]]></dc:creator>
      
      <category><![CDATA[iot]]></category><category><![CDATA[edge]]></category><category><![CDATA[энергоэффективность]]></category><category><![CDATA[параллелизм]]></category><category><![CDATA[архитектура]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Project Euler. Векторное программирование и задача номер 1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/929416/</guid>
      <link>https://habr.com/ru/articles/929416/?utm_campaign=929416&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Добавляем щепотку векторного программирования в задачки проекта Эйлер. Заодно разбираемся, как эффективно реализовать деление на константу.</p> <a href="https://habr.com/ru/articles/929416/?utm_campaign=929416&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 21 Jul 2025 02:36:25 GMT</pubDate>
      <dc:creator><![CDATA[nonpareil_coder]]></dc:creator>
      
      <category><![CDATA[risc-v]]></category><category><![CDATA[векторизация]]></category><category><![CDATA[параллельное программирование]]></category><category><![CDATA[параллелизм]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[async2: эксперимент с поддержкой асинхронности в рантайме]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/928322/</guid>
      <link>https://habr.com/ru/articles/928322/?utm_campaign=928322&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Перед тем как&nbsp;перейти к&nbsp;рассмотрению предложенных изменений в&nbsp;работе асинхронности в&nbsp;C#, давайте разберемся&nbsp;— зачем все это нужно, как&nbsp;устроено сейчас и какие имеются проблемы, раз разработчики начали искать способы улучшения существующей логики.</p><p>Для&nbsp;начала давайте поймем, а&nbsp;зачем вообще нам нужна асинхронность и какие проблемы она решает?</p><p>Представим какой‑то абстрактный web‑api, который ходит за&nbsp;данными в&nbsp;БД. При&nbsp;однопоточном синхронном выполнении следующий запрос может&nbsp;быть обработан только тогда, когда полностью&nbsp;был выполнен предыдущий, что&nbsp;неэффективно, т.к. вся нагрузка ложится только на 1&nbsp;ядро процессора, а&nbsp;остальные простаивают.</p> <a href="https://habr.com/ru/articles/928322/?utm_campaign=928322&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 16 Jul 2025 14:16:41 GMT</pubDate>
      <dc:creator><![CDATA[wneo]]></dc:creator>
      
      <category><![CDATA[asynchronous]]></category><category><![CDATA[c#]]></category><category><![CDATA[.net]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что не так с ООП в 2025]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/920898/</guid>
      <link>https://habr.com/ru/articles/920898/?utm_campaign=920898&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fb4/146/5ce/fb41465ce52009ae668dd353121c98f5.jpg" /><p>Несмотря на то, что сам я ушел из большого ООП¹ более десяти лет назад, причем, надеюсь, навсегда, я всегда крайне вяло и неохотно участвую в баталиях тупоконечников и остроконечников: я абсолютно убежден, что для разных типов задач лучше подходят разные инструменты, и выхолощенное ФП заставит всех вокруг создавать тонны никому не нужного бойлерплейта для тривиального круда, а кристальное ООП&nbsp;— воткнет все возможные палки в колёса при реализации бизнес-процессов. Любой из современных языков программирования позволяет смешивать эти подходы, а микросервисная архитектура&nbsp;—&nbsp;даже гостеприимно приютит несколько языков и сред под одной крышей.</p><p>Тем не менее, хотя я никогда не считал себя евангелистом функционального подхода, и уж, тем более, не примыкал к стану воинствующих пуристов, меня постоянно свербил вопрос: что же все-таки не так с ООП, если лично мне быстрее, проще и понятнее&nbsp;— реализовывать свои проекты на функциональном эликсире?</p><p>И вот, наконец, меня озарило. Объектная модель всем хороша в однопоточной среде. Даже банальная асинхронность приносит кучу совершенно нерелевантных проблем: мьютексы любого сорта&nbsp;— это порождение дьявола. В игрушечных примерах из книжек они езе как-то работают, но действительно _многопоточный_ код на них написать фактически нереально. Среда, которая буквально приглашает разработчика ошибиться и разрушить тотальность функций потенциальным дедлоком&nbsp;—&nbsp;не должна иметь права на существование в принципе.</p> <a href="https://habr.com/ru/articles/920898/?utm_campaign=920898&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что не так с ООП в высокосвязном хайлоаде</a>]]></description>
      
      <pubDate>Mon, 23 Jun 2025 08:48:43 GMT</pubDate>
      <dc:creator><![CDATA[cupraer]]></dc:creator>
      
      <category><![CDATA[многопоточность]]></category><category><![CDATA[акторная модель]]></category><category><![CDATA[параллелизация]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Оптимизация асинхронного сервиса на Python]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ivi/articles/920850/</guid>
      <link>https://habr.com/ru/companies/ivi/articles/920850/?utm_campaign=920850&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c58/f04/bf9/c58f04bf966e35d41326766a4ad4325d.png" /><p>Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса.</p><p>Небольшое предисловие: мы в Иви постоянно работаем над тем, чтобы наши сервисы отвечали быстро и их максимальная предельная нагрузка повышалась. В процессе очередного анализа сервисов, мы выяснили, что один из них, о котором пойдет речь в статье, отвечает довольно медленно, учитывая его особенности. И мы решили его ускорять.</p> <a href="https://habr.com/ru/articles/920850/?utm_campaign=920850&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 23 Jun 2025 07:42:56 GMT</pubDate>
      <dc:creator><![CDATA[vladis2908 (Онлайн-кинотеатр Иви)]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[asyncio]]></category><category><![CDATA[aiohttp]]></category><category><![CDATA[асинхронное программирование]]></category><category><![CDATA[телеметрия]]></category><category><![CDATA[оптимизация]]></category><category><![CDATA[время ответа]]></category><category><![CDATA[профилирование]]></category><category><![CDATA[orjson]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Коротко объясняем, что такое поток, буфер, дуплекс и канал]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/916374/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/916374/?utm_campaign=916374&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a5f/d70/ca4/a5fd70ca418c9c7aa24ad36556ca213c.jpg" /><p>Поток&nbsp;— это последовательность элементов данных, предоставляемых за&nbsp;некоторое время. Концепция потока (stream) позволяет обрабатывать или&nbsp;передавать данные поэлементно, а&nbsp;не&nbsp;как&nbsp;одно целое. Потоки особенно полезны в&nbsp;сценариях, когда приходится работать с&nbsp;большими множествами данных, непрерывными данными или&nbsp;данными реального времени.</p> <a href="https://habr.com/ru/articles/916374/?utm_campaign=916374&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 07 Jun 2025 14:05:42 GMT</pubDate>
      <dc:creator><![CDATA[Albert_Wesker (Timeweb Cloud)]]></dc:creator>
      
      <category>timeweb_статьи_перевод</category><category>поток</category><category>буфер</category><category>дуплекс</category><category>канал</category><category>stream</category><category>хранилище</category><category>программирование</category><category>node.js</category><category>сетевые технологии</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] ОС реального времени в эмуляторе Mario, или Как устроены потоки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/914914/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/914914/?utm_campaign=914914&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="https://habr.com/ru/companies/ruvds/articles/914914/"><div style="text-align:center;"><img src="https://habrastorage.org/webt/2m/_j/a2/2m_ja2u3pgv5ke_ikjts3hydqdm.png"></div></a><br>
<a name="anchorid11"></a>В своём <a href="https://prettygoodblog.com/p/what-threads-are-and-how-to-use-them" rel="nofollow noopener noreferrer">предыдущем посте</a> о потоках я привёл импровизированное сравнение<sup><a href="#anchorid1">1</a></sup>:<br>
<br>
<a name="anchorid12"></a><a name="anchorid13"></a><a name="anchorid14"></a><blockquote>Потоки<sup><a href="#anchorid2">2</a></sup> — это просто состояния сохранения<sup><a href="#anchorid3">3</a></sup> эмулятора<sup><a href="#anchorid4">4</a></sup>, связанные с условием, при котором продолжается их выполнение.</blockquote><br>
В тот момент я подумал, что это <i>неплохая</i> аналогия, но не мог перестать размышлять о ней. Я какое-то время крутил её в голове. Мне кажется, что у этой аналогии есть серьёзный потенциал в качестве инструмента обучения.<br>
<br>
Поэтому я добавил многопоточность в <em>Super Mario Bros.</em> для NES.<br> <a href="https://habr.com/ru/articles/914914/?utm_campaign=914914&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 02 Jun 2025 13:01:03 GMT</pubDate>
      <dc:creator><![CDATA[ru_vds (RUVDS.com)]]></dc:creator>
      
      <category>многопоточность</category><category>конкурентность</category><category>мьютексы</category><category>взаимная блокировка</category><category>потоки</category><category>ruvds_перевод</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Корутины в C++20: архитектура и практическое применение]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/908386/</guid>
      <link>https://habr.com/ru/articles/908386/?utm_campaign=908386&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6fb/f82/4ea/6fbf824ea0a1889a41392660b663abe0.jpg" /><p>Корутины в C++20 открывают новые возможности для асинхронного программирования, но они также могут привести к ошибкам, связанным с управлением памятью и синхронизацией. Здесь о том, какие проблемы могут возникнуть и чего ожидать от будущих обновлений корутин в C++.</p> <a href="https://habr.com/ru/articles/908386/?utm_campaign=908386&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 11 May 2025 16:24:49 GMT</pubDate>
      <dc:creator><![CDATA[Lantris]]></dc:creator>
      
      <category><![CDATA[p2300]]></category><category><![CDATA[корутины]]></category><category><![CDATA[coroutines]]></category><category><![CDATA[c++]]></category><category><![CDATA[асинхронность]]></category><category><![CDATA[сопрограммы]]></category><category><![CDATA[stackless]]></category><category><![CDATA[promise_type]]></category><category><![CDATA[co_await]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Advanced Goroutines Patterns в Go: Fan-out, Fan-in и Pipelines]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/904892/</guid>
      <link>https://habr.com/ru/articles/904892/?utm_campaign=904892&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ad7/e1d/c2a/ad7e1dc2a72732e678c6db5b42ef29d1.png" /><p>В языке Go одним из важнейших преимуществ является мощная поддержка многопоточности и параллелизма за счёт горутин и каналов. В этой статье подробно разберём три продвинутых шаблона работы с горутинами:</p> <a href="https://habr.com/ru/articles/904892/?utm_campaign=904892&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 28 Apr 2025 07:00:23 GMT</pubDate>
      <dc:creator><![CDATA[AlexCatLeva]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[golang]]></category><category><![CDATA[gopher]]></category><category><![CDATA[горутины]]></category><category><![CDATA[каналы go]]></category><category><![CDATA[php]]></category><category><![CDATA[сервисы]]></category><category><![CDATA[программирование]]></category><category><![CDATA[go очереди]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Senders/Receivers в C++26: от теории к практике]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/904134/</guid>
      <link>https://habr.com/ru/articles/904134/?utm_campaign=904134&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/bf1/c73/950/bf1c739507d37614ff6f72553c686ee2.png" /><p>Каждому C++-разработчику приходится решать задачи асинхронности — от сетевых запросов до фоновых вычислений. В этой статье вы увидите, как P2300-модель Senders/Receivers в C++26 расширяет возможности <code>std::async</code>/<code>std::future</code> и позволяет строить ясные, декларативные конвейеры (<code>then</code>, <code>when_all</code>, <code>upon_error</code> и др.).</p> <a href="https://habr.com/ru/articles/904134/?utm_campaign=904134&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 24 Apr 2025 14:32:49 GMT</pubDate>
      <dc:creator><![CDATA[Lantris]]></dc:creator>
      
      <category><![CDATA[Senders]]></category><category><![CDATA[Receivers]]></category><category><![CDATA[stdexec]]></category><category><![CDATA[P2300]]></category><category><![CDATA[co_await]]></category><category><![CDATA[upon_error]]></category><category><![CDATA[C++]]></category><category><![CDATA[c++26]]></category><category><![CDATA[coroutines]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
