|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.12.2009, 21:53 | #1 |
Пользователь
Регистрация: 08.12.2009
Сообщений: 10
|
Как в VS 2008 создать поток?
Здравствуйте!
Решаю простую задачу. IDE - Visual Studio 2008 C++ OS - Windows XP Я в С++ новичёк, вот разбираюсь с потоками. В общем "концепция" ясна. Поток - это такая штука с помощью которой можно распараллеливать задачи. То есть, если в компьютере есть 2 и больше ядер или процессоров, то можно их нагрузить, что бы они работали параллельно, и соответственно ускорить выполнение программы. Проблема состоит в следующем, никак не могу понять как выглядит алгоритм распараллеливания. Знаю что есть функция createThread, так же знаю что её не рекомендуется использовать если в коде используются стандартные функции библиотеки С, такие как например printf() или strcmp(). Проблема в том что функции стандартной библиотеки С не предназначены для использования в Win32 АРІ, и для того чтобы создать поток необходимо во время создания и завершения потока выполнять некоторые действия, все эти действия уже включены в функцию _beginthreadex() для создания потока и _endthreadex() – для завершения потока. эти функции описаны в ргосеss.h Вот я пришел к тому что мне нужна функция _beginthreadex(). Читал MSDN. Есть примеры программ с использованием потоков. Программа находит сумму ветора чисел, который состоит не более чем из 8-ми элементов при помощи потоков. Ми имеем массив а[], и ячейки памяти mem. Код:
1. HANDLE Thread[8]; - Что такое HANDLE? Это тип данных или что? Thread[8] - это я так понимаю массив из 8 элементов типа HANDLE? 2. DWORD res; - что это такое? 3. Thread[i] = (HANDLE)_beginthreadex(NULL, 0, Sum, 0, 0, &tid); Sleep(10); Как понять эту строчку? 4. WaitForMultipleObjects(4, Thread, TRUE, INFINITE ); Как понять эту строчку? Заранее благодарен за понимание, я новенький в этом деле, поэтому с чтением документации возникают проблемы. Нужна определённая база, чтобы понимать всё. Поправьте если что не так говорю. Заранее благодарен!!! Последний раз редактировалось MaxDDT; 11.12.2009 в 21:57. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отменить поток | RIO | Общие вопросы Delphi | 11 | 12.10.2009 00:29 |
Visual Studio 2008 Создать RichEdit | nusik | Общие вопросы C/C++ | 0 | 29.05.2009 08:31 |
Создать RSS поток с помощью Web Service | damned20 | PHP | 1 | 22.05.2009 13:39 |
Как правильно завершить поток | Des | Общие вопросы Delphi | 5 | 08.05.2009 20:56 |
Как остановить поток? | Никки | Win Api | 3 | 06.12.2007 22:04 |