#потоки — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #потоки, aggregated by home.social.
-
Нити и волокна (Threads & Fibers)
Всем привет! Меня зовут Сергей и последнее время я занимаюсь backend-разработкой на Scala. Вообще, мой опыт асинхронного программирования на Scala и C# составляет более десяти лет, и за это время сложилось вполне достаточное понимание этой темы. Во всяком случае, тогда мне так казалось… Но недавно в беседе с коллегами обнаружились большие проблемы в моём «понимании», что мотивировало детально разобраться в этом вопросе.
https://habr.com/ru/articles/1006576/
#scala #асинхронность #асинхронное_программирование #потоки #нити #корутины #direct_style #волокна #threads #fibers
-
Нити и волокна (Threads & Fibers)
Всем привет! Меня зовут Сергей и последнее время я занимаюсь backend-разработкой на Scala. Вообще, мой опыт асинхронного программирования на Scala и C# составляет более десяти лет, и за это время сложилось вполне достаточное понимание этой темы. Во всяком случае, тогда мне так казалось… Но недавно в беседе с коллегами обнаружились большие проблемы в моём «понимании», что мотивировало детально разобраться в этом вопросе.
https://habr.com/ru/articles/1006576/
#scala #асинхронность #асинхронное_программирование #потоки #нити #корутины #direct_style #волокна #threads #fibers
-
Нити и волокна (Threads & Fibers)
Всем привет! Меня зовут Сергей и последнее время я занимаюсь backend-разработкой на Scala. Вообще, мой опыт асинхронного программирования на Scala и C# составляет более десяти лет, и за это время сложилось вполне достаточное понимание этой темы. Во всяком случае, тогда мне так казалось… Но недавно в беседе с коллегами обнаружились большие проблемы в моём «понимании», что мотивировало детально разобраться в этом вопросе.
https://habr.com/ru/articles/1006576/
#scala #асинхронность #асинхронное_программирование #потоки #нити #корутины #direct_style #волокна #threads #fibers
-
Нити и волокна (Threads & Fibers)
Всем привет! Меня зовут Сергей и последнее время я занимаюсь backend-разработкой на Scala. Вообще, мой опыт асинхронного программирования на Scala и C# составляет более десяти лет, и за это время сложилось вполне достаточное понимание этой темы. Во всяком случае, тогда мне так казалось… Но недавно в беседе с коллегами обнаружились большие проблемы в моём «понимании», что мотивировало детально разобраться в этом вопросе.
https://habr.com/ru/articles/1006576/
#scala #асинхронность #асинхронное_программирование #потоки #нити #корутины #direct_style #волокна #threads #fibers
-
[Перевод] Одна строка кода, которая заблокировала 102 потока
В прошлом месяце я исследовал периодически возникающие всплески задержек в нашем сервисе отчётности и обнаружил нечто, заставившее меня не поверить своим глазам: 102 потока блокировалось одновременно, и все они ждали одной блокировки. Причиной этого оказалась одна строка кода, выглядевшая совершенно невинно. Это история о том, как DatatypeFactory.newInstance() поставил на колени наш высокопроизводительный Java-сервис, и об удивительно простом решении, позволившем полностью избавиться от проблемы.
-
Как работает GIL и как от него избавиться
В этой очередной статье по GIL разберемся, как работает Python, как был реализован GIL до версии языка 3.2, как глобальная блокировка работает сейчас, и что с ней делать.
-
Оптимизация управления задачами в Zephyr OS с помощью Thread Pool
Управлять потоками в C для каждой мелкой задачи — это боль. 😤 Даже самые простые задачи вынуждают возиться с k_thread_create , ждать завершения, чистить ресурсы — и всё это превращает твой код в бесконечную головную боль. 🤬 К счастью, в Zephyr OS есть спасение — Thread Pool : набор заранее выделенных потоков, которые берут задачи из очереди и выполняют их без лишнего мусора. Этот подход экономит ресурсы, время и твою нервную систему.
https://habr.com/ru/articles/925300/
#iot #iot_разработка #микроконтроллеры #embedded_systems #thread_pool #zephyr #rtos #embedded_c_programming #потоки
-
[Перевод] ОС реального времени в эмуляторе Mario, или Как устроены потоки
В своём предыдущем посте о потоках я привёл импровизированное сравнение 1 : Потоки 2 — это просто состояния сохранения 3 эмулятора 4 , связанные с условием, при котором продолжается их выполнение. В тот момент я подумал, что это неплохая аналогия, но не мог перестать размышлять о ней. Я какое-то время крутил её в голове. Мне кажется, что у этой аналогии есть серьёзный потенциал в качестве инструмента обучения. Поэтому я добавил многопоточность в Super Mario Bros. для NES.
https://habr.com/ru/companies/ruvds/articles/914914/
#многопоточность #конкурентность #мьютексы #взаимная_блокировка #потоки #ruvds_перевод
-
[Перевод] История о потоке UI, зависавшем при вызове ядра
Однажды клиент обратился ко мне с вопросом о застарелом, но частом зависании, причину которого никак не удавалось выявить. Насколько можно было судить, поток пользовательского интерфейса направлял вызов в ядро, и этот вызов просто зависал без видимых причин. К сожалению, в дампе ядра не выводился стек пользовательского режима, поскольку стек был вытеснен из памяти. Причём, это логично: ведь зависший поток не использовал свой стек. Поэтому, как только в системе возникал дефицит памяти, этот стек из памяти вытеснялся.
-
[Перевод] Глубокое погружение в запросы, лимиты и специфику использования CPU в Kubernetes
Джон Такер помогает разобраться с ключевыми аспектами управления ресурсами CPU в Kubernetes. Он объясняет разницу между запросами и лимитами, показывает их влияние на производительность приложений и делится практическими советами по настройке контейнеров. Если хотите улучшить работу кластеров, эта статья станет вашим гидом.
https://habr.com/ru/companies/flant/articles/898190/
#запросы #лимиты #threads #потоки #троттлинг #троттлинг_в_kubernetes #поды #узлы #ноды #cpu
-
Многопоточность. Снизу вверх. Потоки в языке C#
Привет, Хабр! Это Дмитрий Бахтенков. Добро пожаловать в третью часть цикла статей «Многопоточность. Снизу вверх»! Мы уже разобрали процессор и операционную систему , а сегодня поговорим про использование потоков в .NET с помощью языка программирования C#. Эта статья — обзор основных возможностей взаимодействия с потоками в .NET.
https://habr.com/ru/companies/beeline_cloud/articles/896412/
#многопоточность #потоки #управление_потоками #производительность_приложений #асинхронное_программирование #синхронизация_потоков #конкурентность
-
[Перевод] Ментальная модель потоков в Node.js
Приходилось ли вам работать с потоками в Node.js? Когда я впервые столкнулся с потоками, я, мягко говоря, оказался в растерянности. Эта концепция была совершенно новой для меня. Я полагал, что смогу обойтись и без них, но вскоре понял, что в Node.js они повсюду. Даже такие ключевые модули, как fs и http , используют потоки "под капотом". Поэтому мне пришлось погрузиться в изучение этой темы и разобраться в том, как потоки работают. В этом мне особенно помогло создание устойчивой ментальной модели, основанной на нескольких ключевых концепциях. В этой статье мы подробно рассмотрим эти концепции и сформируем ментальную модель потоков в Node.js.
https://habr.com/ru/companies/timeweb/articles/854330/
#timeweb_статьи_перевод #javascript #nodejs #nodejs #node #streams #stream #потоки #поток #data #данные
-
Не бойтесь потоков в Python, они не кусаются
Привет, любитель Python! Слышал о потоках, но чувствуешь себя немного неуверенно? Не волнуйся! Потоки в Python — это не про силу джедаев. Это хороший инструмент, который, кстати, вполне дружелюбен, если знать основные правила общения с ним. Правда, у потоков в Python есть свои нюансы, и часто можно услышать пугающее слово GIL. Но не спеши пугаться и бежать в сторону async-кода! Потоки в Python отлично работают в задачах ввода-вывода и могут здорово ускорить выполнение твоей программы, если применять их грамотно. Эта статья — как раз для тех, кто хочет понять потоки с нуля: разберём, для чего они нужны, когда стоит их использовать, а главное — как не наломать дров.
-
Рецензия на книгу «100 ошибок в Go и как их избежать» Тейва Харшани
Привет! Меня зовут Макс, я Go-разработчик в IT-компании SimbirSoft. Хочу поделиться своим отзывом на книгу «100 ошибок в Go и как их избежать» Тейва Харшани. Книга заинтересовала меня тем, что автор фокусирует свое внимание на ошибках, как распространенных, так и более редких. Читать далее⚡
https://habr.com/ru/companies/simbirsoft/articles/844530/
#книга #рецензия #обзор_книги #go #потоки #пул #itинфраструктура #горутины
-
Как синхронизировать потоки в Java
Многопоточность — это не просто возможность приложения выполнять несколько задач одновременно, это его способность делать это эффективно и безопасно. В Java многопоточность неотделима от синхронизации, ведь именно она помогает управлять состоянием разделяемых ресурсов между потоками. Всё начинается с потребности в быстродействии и масштабируемости. C несколькими потоками можно обрабатывать больше операций одновременно. В этой статье мы рассмотрим, как синхронизировать потоки в Java.
-
Оптимизация Go: как повысить скорость и эффективность кода
Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность , он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт. Но чтобы этот язык программирования был действительно производительным, разработчикам необходимо учитывать некоторые тонкости работы с ним. Иначе ваше приложение станет таким же медленным, как айтишник без чашки кофе :) В этой статье мы с вами на примерах разберём часто возникающие ситуации при работе с Go, а также рассмотрим приёмы, которые позволят повысить производительность кода. Надеюсь, разработчики уровня джуниор и мидл смогут почерпнуть для себя что-то полезное. Мы начинаем!
-
RxJs для самых маленьких
В этой статье мы подробно рассмотрим такую библиотеку как RxJs. Разберем несколько простых примеров и поймем что такое поточность в программировании.
-
Когда переключаются потоки в Spring WebFlux
Работа с библиотекой WebFlux вызывает затруднения у многих Java/Kotlin разработчиков Код выглядит непривычно, непонятно в каких потоках выполняется логика и как этим управлять Сегодня я попытаюсь объяснить простым языком такой важный аспект, как момент переключения потоков в WebFlux, это поможет вам допускать меньше ошибок и писать более производительный код Также другие материалы от меня вы сможете найти в моем телеграм блоге
https://habr.com/ru/articles/811289/
#java #kotlin #spring #webflux #реактивное_программирование #mono #flux #многопоточность #multithreading #потоки
-
Настраиваем ExecutorService'ы под свои нужды
В этой статье хочу рассмотреть что такое ExecutorService в Java, зачем он нужен, варианты создания и в как его настраивать для решения практических задач Понимаю что есть много подобных статей, но в тех статьях что мне удалось найти не хватало практических примеров, сегодня хочу рассказать вам то, что по-настоящему пригодиться в работе Также я веду блог в телеграм , где вы сможете найти другие материалы от меня
https://habr.com/ru/articles/802113/
#java #многопоточность #executorservice #высоконагруженный #multithreading #потоки #пул_потоков #threadpool #thread #параллелизм
-
Укрощение примитивов синхронизации: сравниваем решения задачи с построением пула потоков на С и Go
Эта статья основана на истории об одном личном челлендже. Задача звучала так: помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных требованиях стояло использование чистого С. Другие языки, включая С++ и Go, не рассматривались. В итоге я получил интересный опыт в рамках системного и параллельного программирования. Меня зовут Алексей Буреев, я работаю старшим инженером по разработке ПО в YADRO, сейчас мой основной рабочий язык программирования — Golang. В этой статье я проведу небольшой эксперимент: покажу, как можно решить одну задачу с помощью разных языков программирования. Языку С я противопоставлю Go, в основе которого есть исторические наработки проектирования языка С. Для этого немного заглянем «под капот» стандартных типов данных, которые уже были заботливо созданы для нас разработчиками языка. Всех заинтересованных прошу под кат.
https://habr.com/ru/companies/yadro/articles/799281/
#go #язык_с #мьютексы #горутины #потоки #пул_потоков #сравнение #языки_программирования #eventdriven
-
[Перевод] Xv6: учебная Unix-подобная ОС. Глава 6. Блокировки
Ядро ОС выполняет программы параллельно и переключает потоки по таймеру. Каждый процессор выполняет поток независимо от других. Процессоры используют оперативную память совместно, поэтому важно защитить структуры данных от одновременного доступа. Потоки испортят данные, если процессор переключится на другой поток, когда первый поток еще не завершил запись. Потоки конкурируют за доступ к структуре данных. Ядро кишит структурами, которые потоки используют совместно. Блокировки защищают данные при конкурентном доступе. Глава расскажет, зачем нужны блокировки, как xv6 реализует и использует блокировки.
https://habr.com/ru/articles/797557/
#xv6 #блокировки #прерывания #взаимоблокировки #потоки #параллельное_программирование #многопоточность #pthreads #lockfree
-
[Перевод] Xv6: учебная Unix-подобная ОС. Глава 6. Блокировки
Ядро ОС выполняет программы параллельно и переключает потоки по таймеру. Каждый процессор выполняет поток независимо от других. Процессоры используют оперативную память совместно, поэтому важно защитить структуры данных от одновременного доступа. Потоки испортят данные, если процессор переключится на другой поток, когда первый поток еще не завершил запись. Потоки конкурируют за доступ к структуре данных. Ядро кишит структурами, которые потоки используют совместно. Блокировки защищают данные при конкурентном доступе. Глава расскажет, зачем нужны блокировки, как xv6 реализует и использует блокировки.
https://habr.com/ru/articles/797557/
#xv6 #блокировки #прерывания #взаимоблокировки #потоки #параллельное_программирование #многопоточность #pthreads #lockfree