Этот сайт ждет реконструкции!
Обязательно зайдите к нам после 15 октября 2011 года.
Если вы что-то искали и не нашли, или у вас возникли вопросы, пишите на e-mail: ivan@ignatiev.su

Управление потоками в Windows

Основой из основ распределенных вычислений я считаю потоки приложений. На базе них можно реализовать распределенный вычисления на локальной машине, как с общей памятью(если функция потока будет изменять глобальную для приложения область памяти ), так и с разделенной (если функция потока будет работать с собственными локальными переменными/памятью).
В работе с потоками в Windows задействовано, две основные функции:

  • Первая – это функция из API отвечающая за создание потокаCreateThread();
  • Вторая- функция самого потока, которая задается пользователем – ThreadProc().

Не буду многословен, вот пример:

#include <windows.h>
#include <stdio.h>
 
void *mainThread;
DWORD * id;
 
// Наша ThreadProc
DWORD WINAPI treadFunction(LPVOID lpParameter) {
     DWORD exitCode;
     while (GetExitCodeThread(mainThread,&exitCode) && exitCode == STILL_ACTIVE) { // пока не выйдем из программы
           // что-то делаем в отдельном потоке
           printf("-----------------  Hello from sub thread\r\n");
           Sleep(5000); // сделаем паузу чтобы вывод не превратился в "мясо на экране"
     }     
     return 0; 
}
 
int main() {
       mainThread = GetCurrentThread(); // достаем ссылку на поток текущего приложения
       CreateThread(NULL,0,treadFunction,NULL,0,id); // создаем новый поток
 
       while(true) {
                   //  программа тоже делает что-то свое
                   printf("Hello from main thread\r\n");
                   Sleep(1000); // аналагично комментарию к Sleep выше
       }
       return 0; // выходим из программы
}

Данный пример будет выводить в консольное окно каждые 5 секунд «—————– Hello from sub thread» из созданного потока и «Hello from main thread» каждую секунду. Что подтверждает одновременную работу функции потока, и основного потока программы.

P.S. Сегодня сменил дизайн блога, со стандартного на Cleanr, сам за создание дизайна не взялся, потому что давно этого уже не делал, да и как-то не охота.

Tags: ,

RSS 2.0 - Узнай первым, о обновлениях в комментариях к этой записи

Один комментарий

  1. Fiat на сайте об автомобилях.

Оставить комментарий