МНогопроцессорНость под 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)