Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 453 сообщений
Cообщения с меткой

многопоточность - Самое интересное в блогах

Следующие 30  »
rss_habr

Размышление об Active Object в контексте Qt6. Часть 2.6

Понедельник, 23 Января 2023 г. 17:59 (ссылка)

В предыдущей части цикла я описал способ вызова слота посредством очереди обработки сигнально-слотовых соединений Qt (она же очередь событий). Но совсем забыл про такую штуку, как QMetaObject::invokeMethod. А ведь эта штука позволяет добиться такого же эффекта (вызов метода в потоке-владельце QObject), но без необходимости создания сигнала.

Читать далее

https://habr.com/ru/post/712328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=712328

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Размышление об Active Object в контексте Qt6. Часть 3. HttpManager

Воскресенье, 15 Января 2023 г. 10:47 (ссылка)

Во всех предыдущих статьях мы рассматривали лишь самый простой пример — сериализованный вывод сообщений на экран в отдельном потоке.

Пришло время, наконец, сделать что-то более реальное и существенное, пусть и не очень сложное. И этим будет менеджер http запросов.

Читать далее

https://habr.com/ru/post/710656/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710656

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Размышление об Active Object в контексте Qt6. Часть 2.5

Суббота, 14 Января 2023 г. 07:29 (ссылка)

Статья выпущена как дополнение к предыдущей и показывает, как можно сделать Active object, работающий асинхронно в среде Qt, но при этом не использующий события.

Читать далее

https://habr.com/ru/post/710550/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710550

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Размышление об Active Object в контексте Qt6. Часть 2

Пятница, 13 Января 2023 г. 05:52 (ссылка)

Пришло время написать вторую часть статьи. На этот раз мы рассмотрим нечто, к чему вы скорее всего придёте, работая над многопоточным кодом с использованием Qt.

Читать далее

https://habr.com/ru/post/710368/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710368

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Современные возможности C++ и проверенные паттерны: активный объект, внешний полиморфизм и корутины

Понедельник, 09 Января 2023 г. 11:21 (ссылка)

В этой статье я покажу, как внешний полиморфизм (реализация полиморфного поведения вне объекта, для которого такое поведение требуется) помогает писать красивые и чистые программы, и расскажу о некоторых базовых и продвинутых способах реализации. Примером будет служить старый добрый паттерн многопоточного программирования “активный объект”. В конце я покажу, как просто реализовать этот паттерн с помощью корутин из стандарта C++20, и как вы можете использовать их, чтобы сделать активный объект еще лучше, добавив в него настоящие асинхронные функции.

Читать далее

https://habr.com/ru/post/709436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=709436

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Как можно ускорить Python сегодня

Суббота, 31 Декабря 2022 г. 13:00 (ссылка)



Python не перестаёт удивлять многих своей гибкостью и эффективностью. Лично я являюсь приверженцем С и Fortran, а также серьёзно увлекаюсь C++, поскольку эти языки позволяют добиться высокого быстродействия. Python тоже предлагает такие возможности, но дополнительно выделяется удобством, за что я его и люблю.



Этот инструмент способен обеспечивать хорошее быстродействие, поскольку имеет в арсенале ключевые оптимизированные библиотеки, а также возможность динамической компиляции основного кода, который предварительно не компилировался. Однако скорость Python значительно падает, когда дело доходит до обработки крупных датасетов или более сложных алгоритмов. В текущей статье мы разберём:




  1. Почему столь важно думать о «будущем разнородных вычислений».

  2. Две ключевых сложности, которые необходимо преодолеть в открытом решении.

  3. Параллельное выполнение задач для более эффективного задействования CPU.

  4. Использование ускорителя для дополнительного повышения быстродействия.



Один только третий пункт позволил увеличить быстродействие в 12 раз притом, что четвёртый позволяет добиться ещё большего за счёт ускорителя. Эти простые техники могут оказаться бесценными при работе с Python, когда требуется добиться дополнительного ускорения программы. Описанные здесь приёмы позволяют нам уверенно продвигаться вперёд без длительного ожидания результатов. Читать дальше →

https://habr.com/ru/post/708358/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708358

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Многопоточность на фронте: абсурд или прекрасное архитектурное решение?

Воскресенье, 28 Ноября 2022 г. 01:48 (ссылка)

Веб-сайты уже давно перестали напоминать простые листы с текстовой информацией. Сейчас это полнофункциональные приложения, порой с очень сложной и тяжелой логикой. А чем больше логики и чем сложнее она становится, тем сильнее сайт начинает замедляться, что, естественно, не нравится пользователям. Сейчас это решают разными способами, например с помощью ленивой подгрузки, а более рисковые пробуют применять микрофронты или виджетные системы. Однако есть еще один вектор, на который пока никто не обращает внимания: использование многопоточности в браузере.

Практически во всех областях IT-разработки весь мир перешел на использование многопоточности: мобильные приложения, бэкенд, прикладное программирование. И даже процессоры развиваются в сторону увеличения количества ядер. Но на фронте многопоточность используют нечасто, и эта тема до сих пор почему-то не очень популярна, особенно в ру-сообществе.

Сегодня я постараюсь это исправить, открыв для вас фантастический мир многопоточности в браузере.

Читать далее

https://habr.com/ru/post/701914/?utm_source=habrahabr&utm_medium=rss&utm_campaign=701914

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Как работать с процессами и потоками в Python

Среда, 23 Ноября 2022 г. 10:50 (ссылка)

Раскрывать тему параллельного или асинхронного программирования непросто. Во-первых, она перегружена терминологией и трудна для понимания. Как правило, тонкости и особенности работы с языками усваиваются, лишь когда столкнешься с ними на практике. Во-вторых, в контексте Python тоже много своих подводных камней. Но сегодня почти любой современный web-сервис сталкивается с необходимостью многопоточности или асинхронности. Поскольку это многопользовательская среда, мы хотим направить всю процессорную мощность не на ожидание, а на решение прикладных задач бизнеса, чтобы все пользователи во время получили необходимые данные.

Эта статья будет полезна тем разработчикам, которые хотят выполнять больше работы за одно и то же время и задействовать все ресурсы своего железа. Проще говоря, делать больше при этом обходиться меньшими ресурсами. Пусть железо работает, а не простаивает.

Читать далее

https://habr.com/ru/post/701020/?utm_source=habrahabr&utm_medium=rss&utm_campaign=701020

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[recovery mode] Уменьшение размера файла в СУБД Ред База Данных / Firebird без операции backup & restore

Среда, 02 Ноября 2022 г. 16:59 (ссылка)

Добрый день. Меня зовут Сергей, я работаю системным архитектором в компании "РЕД СОФТ". Как я уже писал в прошлой статье, одна из проблем при эксплуатации СУБД Ред База Данных и Firebird — это уменьшение размер файла, выполнить которое возможно исключительно через backup и restore. Это долгие операции и даже при всех возможных оптимизациях будут занимать несколько часов или даже суток.

В большинстве случаев нет необходимости в уменьшении размера БД. Свободное место будет использоваться при вставке данных, а также для хранения старых, но ещё активных версий данных (В Firebird используется механизм MVCC).

Однако в некоторых случаях это сделать полезно (или вам просто очень хочется).

Читать далее

https://habr.com/ru/post/697102/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697102

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Как работать с атомарными типами данных в C++

Вторник, 25 Октября 2022 г. 12:01 (ссылка)

Насколько популярна сегодня тема атомарных данных, настолько же она обширна для одной статьи. Можно подробно останавливаться на разных аспектах атомарности: например, анализировать memory ordering, рассуждать о lock-free алгоритмах с использованием атомиков или исследовать производительность атомиков на разных платформах.

Под катом мы рассмотрим некоторые базовые принципы работы с атомарными типами данных в языке C++. А именно: осветим работу с атомарными данными, основные операции с ними в стандартной библиотеке C++, а также некоторые аспекты использования атомиков с пользовательскими типами данных.

Читать далее

https://habr.com/ru/post/694284/?utm_source=habrahabr&utm_medium=rss&utm_campaign=694284

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Приручаем многопоточность в Node.js (часть 5: автомасштабирование под нагрузку)

Четверг, 20 Октября 2022 г. 10:45 (ссылка)

В прошлых частях цикла мы:

- рассмотрели базовые концепты работы с многопоточностью в JavaScript на примере среды Node.js;

- научились формировать общую очередь и каналы обмена данными и сигналами, чтобы более эффективно управлять загрузкой потоков;

- использовали разделяемую память и Atomics-операции как самое быстрое средство обмена большими блоками данных;

- и создали отдельный поток-координатор, чтобы устранить негативное влияние синхронного кода в основном потоке исполнения на загрузку потоков вспомогательных.

В сегодняшней, заключительной, части я продемонстрирую, как все эти механики вместе позволяют сделать эффективный микросервис, автоматически подстраивающийся под изменения входящей нагрузки.

В данном случае эффективность - это не про максимально возможную скорость обработки каждой отдельной задачи, а про сбалансированное использование аппаратных ресурсов с учетом тех ограничений, на которые мы готовы пойти. Особенно актуально это для различных "облачных" размещений, где оплата идет за фактически потребленные CPU и RAM.

Читать далее

https://habr.com/ru/post/693738/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693738

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Многопоточность Java. #неОпятьАСнова #javaJunior #javaCore

Четверг, 14 Октября 2022 г. 00:36 (ссылка)

Тезисно про многопоточность в Java.

Читать далее

https://habr.com/ru/post/693244/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693244

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Приручаем многопоточность в Node.js (часть 4: координатор против синхронного кода)

Вторник, 04 Октября 2022 г. 15:50 (ссылка)

В предыдущей части мы научились эффективно передавать данные вспомогательным потокам из основного через разделяемую память, используя Atomics-операции и блокировки.

Но мы рассматривали все-таки идеальную ситуацию, когда основной поток больше ничем не занимался, кроме обмена с "подчиненными" уже заранее готовыми данными. В реальных же приложениях такое встречается достаточно редко - обычно эти самые данные приходится готовить непосредственно перед передачей. И, бывает, в этом участвует существенная доля синхронного кода, что для JavaScript крайне неприятно, но иногда неизбежно - например, при вычислении регулярных выражений.

Давайте оценим, насколько синхронные операции "роняют" производительность нашего тестового приложения. И узнаем, как можно в разы улучшить ее, "скрестив ужа с ежом", используя выделенный поток-координатор из позапрошлой части статьи совместно с разделяемой памятью.

Читать далее

https://habr.com/ru/post/691352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=691352

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Приручаем многопоточность в Node.js (часть 3: разделяемая память, атомарные операции и блокировки)

Четверг, 29 Сентября 2022 г. 09:55 (ссылка)

В предыдущей части мы остановились на мысли, что минимизировать простой вспомогательных потоков нашего приложения можно, если заставить их самих получать себе задачи, не дожидаясь, пока их загрузит кто-то другой со стороны.

Но тут возникает две проблемы:

1. как эффективно доставить данные в обрабатывающий поток

2. как распределять задачи между активными потоками, чтобы ничего не пропустить, но и дважды не обработать

В этом нам как раз и помогут два рассматриваемых в этой статье концепта работы с многопоточностью: разделяемая (shared) память и потокобезопасные (thread-safe, Atomics) операции над ней.

Читать далее

https://habr.com/ru/post/689864/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689864

Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<многопоточность - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda