" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 2476
Просмотры материалов : 10553471
 
Заготовка параллелизма (BCB v.6.0) v.1.0 (09.09.2026). Печать E-mail
2026 - Сентябрь
09.09.2026 19:27
Save & Share
Слишком много копий было сломано при изучении многопоточности и параллелизма. Если с многопоточностью всё более-менее понятно, то параллелизм потребовал просто гигантских усилий для понимания всех протекающих процессов. Стало ясно: без заготовки, обеспечивающей безошибочную и простую работу с потоками, - ни 1 проект не будет сделан быстро. Эта заготовка была сделана - и будет использована в ближайшее время. Заготовка, возможно, будет допиливаться: например, хотелось бы следить за всеми группами потоков сразу. Но миграция на Qt произведена не будет: только не на этот кусок забагованного г...


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

Возможности:
- диагностический механизм слежения за потоками (вслепую работать с многопоточностью, а тем более параллелизмом, - выстрел себе в ногу);
- глубоко оттестированная функция разбиения одной большой задачи по нескольким логическим процессорам (при параллелизме, из большого for сформирует нужное кол-во маленьких);
- отработанные настройки, при которых родительский поток не влияет на дочерние и, похоже, дочерних потоков на родительский;
- корректные создание, работа и удаление потоков (есть свои тонкости);
- возможность создавать группы потоков (см. Thread_Classes.h, особенно strThreads);
- отработан минимальный набор переменных, необходимых классу потока для нормального его функционирования.


Пример работы:
- Button_Start->Click(): 3 режима запуска потоков (пара во второй группе со слежением, один в первой группе без слежения, несколько в третьей группе со слежением);
- Button_Cancel->Click(): отмена работы потоков через глобальную переменную g_bCancel_Threads;
- Label_uiExecute_Threads_Count: считает, сколько раз потоки вызывали критическую секцию (а в ней - исходник увеличения числа запуска Execute() на 1);
- Label_dTime_Execution_S: общее время выполнения задач в Button_Start->Click().


Путь достаточно долгий: от изучения многопоточности до применения её сложного варианта, параллелизма, в реальных работах.
Любая неточность - и параллелизм не будет работать должным образом, поэтому на комментариях - предельное внимание.
Пройденный путь (такое многолетнее осознание, какой же это трындец, - поэтому программисты в РФ параллелизм не особо любят-знают):
- лицезрение параллелизма или желание его через другие программы:
    - Нагрузка процессора на 100% (03.12.2015): https://bad-good.ru/2015/december/linx.html;
    - Нагрузка всех ядер процессора на 100% (09.10.2019): https://bad-good.ru/2019/october/cpu-lets-buuurn.html;
    - 7-Zip в Linux: перегрев сервера (21.07.2022): https://bad-good.ru/2022/july/linux-7zip.html;
    - Intel vs AMD (08.01.2023): https://bad-good.ru/2023/january/intel-amd-fight.html;
    - MemTest обновился (18.03.2023): https://bad-good.ru/2023/march/memtest-uefi.html;
    - Архиватор TAR в Astra Linux SE v.1.4 (08.04.2024): https://bad-good.ru/2024/april/tar-astra.html;
    - Взлом коротких паролей: начало (29.04.2025): https://bad-good.ru/2025/april/passwords-pseudohack.html;
    - Qt: ускорение сборки (17.06.2025): https://bad-good.ru/2025/june/qt-faster.html;
    - Victoria: случайно импортозаместился (21.08.2025): https://bad-good.ru/2025/august/victoria-rus.html;
    - Пакетное сжатие фотографий (03.09.2025): https://bad-good.ru/2025/september/jpeg-resize.html;
    - Определитель апноэ v.1.0 (29.05.2026): https://bad-good.ru/2026/may/apnoe.html;
    - Самодельный холтер: провал (02.06.2026): https://bad-good.ru/2026/june/halter-shit.html;
- собственные многопоточные потуги и разработки, приведшие к созданию заготовки:
    - Многопоточность: получилось (12.07.2024): https://bad-good.ru/2024/july/many-cores.html;
    - Многопоточность: получилось-2 (02.08.2024): https://bad-good.ru/2024/august/bcb-many-cores.html;
    - Многопоточность: получилось-3 (10.09.2025): https://bad-good.ru/2025/september/bcb-many-cores-2.html;
    - Многопоточность: получилось-4 (25.09.2025): https://bad-good.ru/2025/september/bcb-many-cores-3.html;
    - Анонс ПО: Таблицы простых чисел (01.10.2025): https://bad-good.ru/2025/october/tables-simple-numbers.html;
    - Многопоточность: получилось-5 (15.10.2025): https://bad-good.ru/2025/october/vs-many-cores.html;
    - Многопоточность: ещё нюансы (28.05.2026): https://bad-good.ru/2026/may/bcb-many-cores-4.html;
    - Многопоточность: истинная скорость (09.06.2026): https://bad-good.ru/2026/june/bcb-many-cores-5.html;
    - Погрешности long double (25.06.2026): https://bad-good.ru/2026/june/long-double.html;
    - Многопоточность: получилось-6 (01.07.2025): https://bad-good.ru/2026/july/bcb-many-cores-6.html;
    - Параллелизм: ускорение (15.07.2026): https://bad-good.ru/2026/july/parallel-cores-speed.html.

Обновлено ( 09.09.2026 19:43 )
 
 

Последние новости


©2008-2026. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru