ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
163
m_List1.ResetContent();
m_List2.ResetContent();
m_List3.ResetContent();
m_List4.ResetContent();
CreateThread(0,0,Thread,&m_List1,0,0);
CreateThread(0,0,Thread,&m_List2,0,0);
CreateThread(0,0,Thread,&m_List3,0,0);
CreateThread(0,0,Thread,&m_List4,0,0);
}
void CCritDlg::OnClose()
{
CloseHandle(hMutex);
DeleteCriticalSection(&Sect1);
CDialog::OnClose();}
Лабораторная работа №4
Цель работы: исследовать значение приоритета потоков для их синхронизации
в системе с псевдопараллельным режимом работы.
Разработайте программу сортировки чисел. Программа должна удовлетворять
следующим требованиям:
-
Должны быть реализованы процедуры сортировки пузырьком, вставкой, и бы-
строй сортировки.
-
Размер выборки для сортировки должен задаваться пользователем.
-
Должен быть реализован режим отрисовки процесса сортировки.
-
Пользователь должен иметь возможность замедлять и останавливать сорти-
ровку.
-
Все три сортировки должны работать одновременно и над одинаковым набо-
ром входных данных.
-
Каждая сортировка должна отрисовываться в отдельном окне.
Для отрисовки сортировки можно использовать вызов SetPixel: перед обменом
местами двух элементов сначала стираем соответствующие точки, закрашивая их
цветом фона, а после обмена – рисуем заново. Вызов SetPixel также играет роль не-
большой задержки во времени.
Поскольку размер выборки будет меняться, целесообразно использовать ди-
намические массивы. Для этого используйте операторы
new
и
delete.
Для задания
начальных значений используйте генератор случайных чисел
rand()
: он возвращает
значение от 0 до
MAX_RAND
.
Как создать новое окно?
Окно проще всего создать на основе
шаблона –
ресурса окна. Для добавления
нового шаблона выберите вкладку
Resources
, выберите раздел
Dialog
, кликните на
нем правой кнопкой мыша и выберите
New dialog
. Добавится новый шаблон
диалога с идентификатором
IDD_DIALOGxxx,
где ххх – некоторое число.
1...,155,156,157,158,159,160,161,162,163,164 166,167,168,169,170,171,172,173,174,175,...180