Информационно-аналитический портал
Высокопроизводительные
вычисления на WINDOWS-кластерах
   

 
 
  Главная
  Новости
  Как создать Windows-кластер
  Компьютеры
  Технологии
  Message Passing Interface (MPI)  
  OpenMP  
  Windows Threads  
  Treading Building Blocks  
  MC#  
  Параллельное программирование
  Библиотеки, пакеты, приложения
  Метакомпьютинг, GRID
  Обучение
  Исследования
 
  
Логин:    
Пароль:    
Запомнить:
 Забыли пароль? Регистрация 
  
 
Microsoft HPC RussiaТехнологииWindows Threads
 

Windows Threads

Общая схема использования потоков Windows Threads

Для создания дополнительного потока необходимо вызывать функцию CreateThread, в качестве аргументов этой функции передаются приоритет запускаемого потока, функция, которую он будет исполнять, и ее аргументы. Ниже представлен пример создания дополнительного потока:


  #include <windows.h>
  #include <process.h>
  #include <stdio.h>

  DWORD WINAPI ThreadProc( LPVOID lpParam ) 
  { 
      printf(“\nNew created thread”);
      return 0;
  } 
  void main()
  {
      PMYDATA pData;
      DWORD dwThreadId;
      HANDLE hThread;
          hThread = CreateThread( 
              NULL,              // использовать атрибуты безопасности по умолчанию
              0,                 // использовать размер стека для потока по умолчанию
              ThreadProc,        // адрес функции, исполняемой в дочернем потоке
              pData,             // аргументы функции
              0,                 // использовать флаги создания потока по умолчанию
              &dwThreadId);      // возвращаемый параметр – идентификатор потока 
   
          // проверка на успешность процедуры создания дочернего потока
          if (hThread == NULL) 
          {
              ExitProcess(1);
          }
          CloseHandle(hThread);
  }                      

Для создания нескольких дочерних потоков необходимо несколько раз вызвать метод CreateThread

При разработке параллельных приложений на основе явного использования потоков операционной системы Windows важным аспектом является организация согласованного доступа к ресурсам, которые используются несколькими потоками, будь это общие переменные или участки памяти. Такие ресурсы называются общими или разделяемыми. При наличии нескольких потоков необходимо осуществлять синхронизацию их работы – это можно сделать с помощью таких механизмов операционной системы как критические секции, мьютексы, семафоры, события и другие.

Важные положительные моменты технологии Windows threads:

  • Разработка параллельных приложений на основе данной технологии позволяет явно управлять созданием и завершением потоков. Таким образом, обеспечивается контроль за началом и окончанием работы потоков.
  • Явное задание начальных данных и способов их обработки потоками.
  • Возможность достижения более высокого ускорения по сравнению с использованием технологии OpenMP.
Одним из недостатков данной технологии является необходимость реализации согласованного доступа к общим ресурсам и синхронизации выполнения потоков с помощью системных или пользовательских механизмов.

<< вернуться  |   Документ от: 26.10.2007 15:54
 

Новости

26.12.2007
25.12.2007
24.12.2007
17.12.2007
17.12.2007
 

   

© ННГУ, Центр компетенции в области высокопроизводительных вычислений на основе технологий Майкрософт, 2007