rotor — ненавязчивый С++ акторный микрофремворк, похожий на своих старших братьев — caf и sobjectizer. В новом релизе внутреннее ядро полностью было переделано с помощью механизмов плагинов, так что это затронуло жизненный цикл акторов.
Рубрика «concurrency» - 2
Deadlock Empire — игра для разработчиков
2020-02-14 в 8:15, admin, рубрики: .net, avanpost, C#, concurrency, multithreading, Mutex, parallel programming, semaphore, Блог компании Avanpost, Игры и игровые приставки, многопоточность, ПрограммированиеХабр, как известно, не место для игр, но мы нашли одно исключение, которое, как нам кажется, достойно упоминания здесь!
Встречайте: Deadlock Empire!
Суть игры — управление планировкой потоков, код которых приведен в заданиях. Управлять нужно так, чтобы добиться ошибочной ситуации: взаимблокировки, повторных значений счетчиков, достижения определенных участков кода и прочих непредвиденных ситуаций, которые нужно осознавать при разработке многопоточных приложений.
Читать полностью »
CLRium #7: Практический. Семинар, домашние задания с проверкой, менторинг
2020-01-23 в 17:08, admin, рубрики: .net, C#, clrium, concurrency, parallelism, Блог компании Семинары Станислава Сидристого, Программирование18 апреля 2020 в Санкт-Петербурге и 16 мая в Москве пройдёт семинар по платформе .NET CLRium #7 на котором мы продолжим тему многопоточки: на этот раз с точки зрения практики. Первую часть посетило более 700 человек. Основные темы семинара (программа формируется):
- Архитектура распараллеленного кода
- Тестирование распараллеленного кода, алгоритмов и примитивов синхронизации
- Отладка распараллеленного кода
И в этот раз семинар будет в некотором смысле двухнедельным:
- Сам семинар будет идти день;
- После чего вы получите домашние задания и мы в течение двух недель будем их вместе решать, проверять и давать советы по их улучшению (также будет создана группа в Телеграмм для их динамичного обсуждения);
Также возможна работа в формате собеседований с личным ментором
Python 3.5 Реализация параллелизма с использованием asyncio
2020-01-18 в 10:05, admin, рубрики: asyncio, concurrency, python, параллельное программированиеПеревод главы 13 Параллелизм
из книги ‘Expert Python Programming’,
Second Edition
Michał Jaworski & Tarek Ziadé, 2016
Асинхронное программирование
В последние годы асинхронное программирование приобрело большую популярность. Python 3.5 наконец-то получил некоторые синтаксические функции, закрепляющие концепции асинхронных решений. Но это не значит, что асинхронное программирование стало возможным только начиная с Python 3.5. Многие библиотеки и фреймворки были предоставлены намного раньше, и большинство из них имеют происхождение в старых версиях Python 2. Существует даже целая альтернативная реализация Python, называемая Stackless (см. Главу 1 «Текущее состояние Python»), которая сосредоточена на этом едином подходе программирования. Для некоторых решений, таких как Twisted, Tornado или Eventlet, до сих пор существуют активные сообщества, и их действительно стоит знать. В любом случае, начиная с Python 3.5, асинхронное программирование стало проще, чем когда-либо прежде. Таким образом, ожидается, что его встроенные асинхронные функции заменят большую часть старых инструментов, или внешние проекты постепенно превратятся в своего рода высокоуровневые фреймворки, основанные на встроенных в Python.
Читать полностью »
Как не ошибиться с конкурентностью в Go
2019-09-17 в 13:11, admin, рубрики: concurrency, Go, golang, parallel programming, Анализ и проектирование систем, высокая производительность, параллельное программированиеПочему мы вообще хотим писать конкурентный код? Потому что процессоры перестали расти по герцовке и начали расти по ядрам. С каждым годом увеличивается количество ядер процессора, и мы хотим их эффективно утилизировать. Go — тот язык, который создан для этого. В документации так и написано.
Мы берём Go, начинаем писать конкурентный код. Конечно, ожидаем, что легко сможем обуздать мощь каждого ядра нашего процессора. Так ли это?
Меня зовут Артемий. Этот пост — вольная расшифровка моего доклада с GopherCon Russia. Он появился как попытка дать толчок людям, которые хотят разобраться, как писать хороший, конкурентный код.
Видео с конференции GopherCon Russia
CLRium #6: Concurrency & Parallelism. Обучение магии распараллеливания задач
2019-08-26 в 20:35, admin, рубрики: .net, C#, clrium, concurrency, parallelism, Блог компании Семинары Станислава Сидристого, ПрограммированиеНаша команда по-настоящему взбудоражена: ведь мы находимся в стадии производства сложнейшего для нас семинара среди всех нами созданных: семинара по многопоточке, конкурентности и прочим смежным вопросам. Мы немного боимся: мы создали целый огромный процесс внутренних согласований докладов, источников информации, вычитываем, сверяем… исправляем… и всё это для того чтобы создать самый полезный семинар из всех проведенных.
Наша задача звучит очень просто: за два полных дня научить вас всем слоям многопоточки.
День, когда Dodo IS остановилась. Асинхронный сценарий
2019-07-24 в 15:01, admin, рубрики: .net, async, concurrency, Dodo Pizza Engineering, fault-tolerance distributed service, Parallelism Dodo IS, асинхронный сценарий, Блог компании Dodo Pizza Engineering, высокая производительность, Додо Пицца, многопоточное программирование, многопоточность, ПрограммированиеПривет! Каждый SRE в нашей команде когда-то мечтал спокойно спать по ночам. Мечты имеют свойство сбываться. В этой статье я расскажу про это и про то, как мы достигаем производительности и устойчивости своей системы Dodo IS.
CLRium #6: Concurrency
2019-07-19 в 9:48, admin, рубрики: .net, C#, clr, concurrency, Блог компании Семинары Станислава Сидристого, многопоточность, параллельное программирование, ПрограммированиеКак вы уже заметили, формат семинара эволюционировал и принял новую форму: каждый последующий семинар теперь посвящается целиком и полностью какой-либо теме. Пятый был посвящен теме Garbage Collector и за 10 часов раскрыл всё, что только возможно, оставив за скобками совсем уж частные вопросы. А его кульминацией был доклад про практическое применение (вопрос, который интересует каждого — "зачем всё это знать??")
Второй вопрос, который, как мне кажется, хочется знать всем, но на это, как правило, нет времени — это вопрос работы в многопоточном коде и вопрос планирования и поддержки его архитектуры. Вопросы эти — достаточно сложные, пугающие, а зачастую — вообще отталкивающие. И ровно поэтому дальше простейших конструкций синхронизации обычный разработчик не уходит. А ведь вокруг столько всего интересного :)
Just take a look at SObjectizer if you want to use Actors or CSP in your C++ project
2019-06-30 в 8:06, admin, рубрики: actor model, actors, c++, c++17, concurrency, open source, sobjectizer, ПрограммированиеA few words about SObjectizer and its history
SObjectizer is a rather small C++ framework that simplifies the development of multithreaded applications. SObjectizer allows a developer to use approaches from Actor, Publish-Subscribe and Communicating Sequential Processes (CSP) models. It's an OpenSource project that is distributed under BSD-3-CLAUSE license.
SObjectizer has a long history. SObjectizer itself was born in 2002 as SObjectizer-4 project. But it was based on ideas from previous SCADA Objectizer that was developed between 1995 and 2000. SObjectizer-4 was open-sourced in 2006, but its evolution was stopped soon after that. A new version of SObjectizer with the name SObjectizer-5 was started in 2010 and was open-sourced in 2013. The evolution of SObjectizer-5 is still in progress and SObjectizer-5 has incorporated many new features since 2013.
SObjectizer is more or less known in the Russian segment of the Internet, but almost unknown outside of the exUSSR. It's because the SObjectizer was mainly used for local projects in exUSSR-countries and many articles, presentations, and talks about SObjectizer are in Russian.
A niche for SObjectizer and similar tools
Multithreading is used in Parallel computing as well as in Concurrent computing. But there is a big difference between Parallel and Concurrent computing. And, as a consequence, there are tools targeted Parallel computing, and there are tools for Concurrent computing, and they are different.