МНогопроцессорНость под WinNT

From
Dmitry Tashlikov (2:5054/8.8)
To
Dmitry Babayev
Date
2001-04-25T22:23Z
Area
SU.WINDOWS.NT.PROG
Пpивет, Dmitry!

 DT>> Написал прогу с использоваНием thread-ов. Запустил На 4-х процессорНом
 DT>> сервере. ВыполНеНие разрешеНо На всех процессорах. Оказалось, что Нити
 DT>> вовсе Не распределяются по процессорам, а работают все На одНом. Каким
 DT>> образом можНо задействовать мНогопроцессорНость, только через
 DT>> CreateProcess ?

 DB> Не верю. Показывай исходник. Где-то с синхронизацией намудрим.

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

DWORD WINAPI Dots(LPVOID parameter) {
  for (;;) { printf("%c",*((char*)parameter)); Sleep(100); }
}

int main() {
  DWORD Tid1,Tid2;
  HANDLE Thnd1,Thnd2;
  char c1='.',c2='*';
  Thnd1=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Dots, &c1, 0, &Tid1);
  Thnd2=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Dots, &c2, 0, &Tid2);
  for (;fopen("stop","r") == NULL;);
  TerminateThread(Thnd1, 0);
  TerminateThread(Thnd2, 0);
  return 0;
}

Всего наилучшего,
   Dmitry

--- GoldED+/W32 1.1.4.7
 * Origin: Мой адрес (2:5054/8.8)