Публикации по теме 'concurrency'


Освоение горутин в Go: упрощенный подход к параллелизму
Введение Горутины — важная особенность языка программирования Go, обеспечивающая легкий и эффективный способ достижения параллелизма . В этой статье мы рассмотрим концепцию горутин и продемонстрируем, как их можно использовать для одновременного выполнения функций. Мы предоставим примеры кода, которые помогут вам понять и эффективно реализовать горутины. Что такое Горутины? Горутину можно рассматривать как легковесный поток выполнения в Go. Это позволяет выполнять функции..

Умные указатели Rcв Rust
безопасно и одновременно! Интеллектуальные указатели — это структуры данных, которые действуют как указатели, но также автоматически обрабатывают освобождение объекта, на который указывает. Они имеют встроенные дополнительные функции для обеспечения правильного управления памятью. А. Что такое интеллектуальные указатели Интеллектуальные указатели — это оболочки необработанных указателей, которые автоматизируют управление ресурсами, например выделение, освобождение от выделения и т...

Параллелизм в C++: мьютексы и блокировки — часть 3
Защита замка В предыдущем примере мы напрямую вызвали функции lock() и unlock() мьютекса. Идея «работы под замком» состоит в том, чтобы заблокировать нежелательный доступ других потоков к тому же ресурсу. Только поток, получивший блокировку, может разблокировать мьютекс и дать всем оставшимся потокам возможность получить блокировку. Однако на практике прямых вызовов lock() следует избегать любой ценой! Представьте, что при работе под блокировкой поток выдаст исключение и..

К единой теории операционной трансформации и CRDT
Обновление (2 марта 2017 г.): теперь есть рабочий код для идей в этом посте с дополнительными оптимизациями. В последнее время я глубоко погрузился в литературу по совместному редактированию текста. По сути, существует два противостоящих лагеря: операционная трансформация, которая восходит к системе Grove 1989 года и является основой большинства совместных редакторов сегодня, и гораздо более новый подход бесконфликтных реплицированных типов данных (CRDT). Однако я пришел к выводу,..

Параллелизм в Dart — Часть III
Параллелизм в действии В этой статье рассматривается сценарий, в котором есть асинхронная функция с именем foo(), которая несколько раз вызывает другую асинхронную функцию bar() и ожидает ее. Теперь, что нам нужно, так это то, что если я вызову foo() несколько раз, то каждое выполнение foo() должно выполняться одно за другим. Фрагмент кода: Выход: entering foo function for value 5 Before first bar await for value 5 entering foo function for value 10 Before first bar await for..

Параллелизм против параллелизма
Параллелизм против параллелизма Когда мы говорим о параллелизме и параллелизме с точки зрения вычислений и обработки, они кажутся похожими, но это не так. Между ними огромная разница. Параллелизм: в режиме параллелизма несколько задач могут выполняться одновременно, но не выполняются одновременно. Означает, что мы можем создавать несколько задач, но ЦП выполняет их циклически. Давайте рассмотрим пример. у вас есть бутерброд и молочный коктейль. Вы можете выполнять одно задание..

Параллельный эксперимент Node.js
На днях у меня появилось время подготовиться к собеседованию. Мне нужно было принести фрагмент кода, который мне понравился, и объяснить его. Компания, с которой я брал интервью, является активным пользователем Node.js, поэтому я решил произвести на них впечатление небольшим узлом foo, поэтому я создал это. austbot/concurrent-process concurrent-process — тест на параллельном узле, чистые функции и веселье! github.com Это исследование..