Something went wrong. Try again.
Reactos
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include <stdio.h>#include <windows.h>#include <stdlib.h>
#define NR_THREADS (10)
ULONG nr;
DWORD WINAPI thread_main1(LPVOID param){ ULONG s;
printf("Thread %ld running\n", (DWORD)param); s = nr = ((nr * 1103515245) + 12345) & 0x7fffffff; s = s % 10; printf("s %ld\n", s); Sleep(s); printf("Thread %ld finished\n", (DWORD)param); return 0;}
// Shows the help on how to use these program to the uservoid showHelp(void){
printf("\nReactOS threads test program (built on %s).\n\n", __DATE__);printf("syntax:\tthread.exe <seed>\n");printf("\twhere <seed> is an integer number\n");printf("\texample: thread.exe 100\n");
}
int main (int argc, char* argv[]){ DWORD i=0; DWORD id; ULONG nr; HANDLE ThreadHandle[NR_THREADS];
// The user must supply one argument (the seed). if he/she doesn't // then we show the help. // if(argc < 2) { // showHelp(); // return 1; // }
// nr = atoi(argv[1]); nr = 500; printf("Seed %ld\n", nr);
printf("Creating %d threads...\n",NR_THREADS*2); for (i=0;i<NR_THREADS;i++) { ThreadHandle[i] = CreateThread(NULL, 0, thread_main1, (LPVOID)i, CREATE_SUSPENDED, &id);
}
for (i=0;i<NR_THREADS;i++) { ResumeThread(ThreadHandle[i]); }
for (i=0;i<NR_THREADS;i++) { SuspendThread(ThreadHandle[i]); }
for (i=0;i<NR_THREADS;i++) { ResumeThread(ThreadHandle[i]); }
printf("All threads created...\n"); return 0;}