В своей предыдущей статье я затронул тему грамотной реализации потоков в Qt и предложил свой вариант. В комментариях мне подсказали более верное направление. Попробовал сделать — получилось и вправду легко и красиво! Я хотел было исправить старую статью, но Хабр повис — и все потерялось. В итоге я решил написать новую версию.
Читать полностью »
Рубрика «многозадачность» - 3
Qt: шаблон для корректной работы с потоками — более качественная реализация
2013-11-22 в 12:05, admin, рубрики: c++, qt, Qt Software, QThread, Алгоритмы, многозадачность, поток, метки: Qt, QThread, многозадачность, потокQt: шаблон для корректной работы с потоками
2013-11-18 в 12:34, admin, рубрики: c++, qt, Qt Software, QThread, Алгоритмы, многозадачность, метки: c++, Qt, QThread, многозадачность Всем хабрапривет!
Как-то понадобилось мне в Qt 5.1.1 для WinXP в VS2009 реализовать многопоточное приложение с интенсивным обменом сигналами. Взял я Шлее, вычитал у него, что нужно унаследовать класс от QThread и — вуаля, велком в многопоточность! На всякий случай заглянул в документацию Qt — там никто не возражал против наследования от QThread своего класса. Ну что же — порядок, сделано! Запускаю — вроде как работает, но как-то не так… Начинаю в режиме отладки отслеживать — а там творится черт знает что! То сигналы не выходят, то выходят, но как-то криво и из другого потока. Одним словом, полный бардак! Пришлось основательно по-google-ить и разобраться в теме (мне помогли статьи тут, здесь и там). В итоге я сделал шаблон класса на С++ (вернее, целую иерархию оных), что мне позволило в итоге писать (относительно) небольшой код класса, живущего в другом потоке, который работает правильно и стабильно.
Читать полностью »
Утилита для запуска PHP-скриптов в фоновом режиме
2013-05-10 в 14:39, admin, рубрики: php, многозадачность, метки: PHP, многозадачностьПредисловие
Возможно, вы думаете, что это — очередная статья о том, как расплодить процессы с помощью fork() через консоль PHP. Но увы, ни консоли, ни pcntl_fork() здесь не будет — только браузер и сервер с PHP.
Читать полностью »
Восстановление приложения при запуске со стартового экрана без потери предыдущего состояния в WP8
2012-11-04 в 21:50, admin, рубрики: .net, mobile development, windows phone 8, возобновление работы приложения, многозадачность, разработка под windows phoneWindows Phone 8 принесла такую замечательную возможность, как быстрое возобновление состояния приложения после его перезапуска из списка приложения или через плитку начального экрана с полным сохранением состояния и истории навигации внутри приложения (для возможности последующей навигации используя кнопку Назад так, как если бы приложение никуда и не сворачивалось).
Если вы уже пробовали пользоваться Windows 8 и приложениям из Windows Store, вы, возможно, заметили, что при запуске приложения со стартового экрана вы вернетесь именно к тому месту приложения, на котором вы его оставили. Именно такого результата мы и добьемся в нашем приложении для Windows Phone 8.
Итак, начнем.
Читать полностью »
Самобытный Samsung
2012-08-27 в 10:00, admin, рубрики: android, Galaxy Note 10.1, Samsung, Гаджеты. Устройства для гиков, многозадачность, метки: android, Galaxy Note 10.1, Samsung, многозадачность24 августа стартовали продажи планшета Samsung Galaxy Note 10.1. Еще за день до официального старта продаж у меня была возможность ознакомиться с этим девайсом. Итого, на данный момент я пользуюсь им уже 5-ый день. Пришло время поделиться своими первыми впечатлениями и мыслями.
Возвращаясь к многозадачности на PHP
2012-07-30 в 9:45, admin, рубрики: php, многозадачность, Песочница, Программирование, метки: PHP, многозадачность, Программирование Написать эту статью меня побудила совершенно удручающая, на мой взгляд, ситуация с решением многозадачности на языке PHP.
Большая часть программистов заявляют что многозадачности в PHP нет, поэтому не надо и пытаться, а менее зашоренные все же пытаются как нибудь извратиться через запуск множества скриптов или, в лучшем случае, придумывают какие то очень частные решения для распараллеливания скачивания, например.
Статья предназначена для демонстрации самой идеи как вообще реализовать многозадачность практически на любом языке программирования.
Так сказать Proof of concept.
Как говорится всё новое это хорошо забытое старое.
Читать полностью »
Многозадачность в микроконтроллерах на основе продолжений
2012-05-05 в 3:35, admin, рубрики: микроконтроллеры, многозадачность, Программинг микроконтроллеров, метки: c++, микроконтроллеры, многозадачность Программисты C и так не избалованы возможностями языка, а разработчики встроенных систем на микроконтроллерах ограничены еще больше, зачастую их программы работают на голом железе, без поддержки ОС.
Возможность использования в С сопрограмм, генераторов, кооперативной многозадачности часто может сильно упростить программу и сэкономить силы, но эти возможности языка не очевидны и многие про них не знают.
Продолжения (contionuation) позволяют запомнить состояние выполнения программного потока (функции), и вернуться к этому месту в дальнейшем.
Используя продолжения, мы можем получить сопрограммы (coroutine), а это уже практически готовые генераторы, итераторы и кооперативная многозадачность.
Читать полностью »