Я пишу эту программу, чтобы решить философов-столовых, и мне нужно запустить эту программу и проверить, сколько времени понадобилось всем философам, чтобы съесть миллион раз
Можете ли вы помочь мне с этой частью проверки миллион раз?
это моя программа:
#include <iostream>
#include <Windows.h>
#include <time.h>
HANDLE WINAPI philosopher[5];
CRITICAL_SECTION chopstick[5];
DWORD WINAPI func(int p)
{
std::cout << "Philosopher" << p << "is thinking" << std::endl;
TryEnterCriticalSection(&chopstick[p]);
TryEnterCriticalSection(&chopstick[(p + 1) % 5]);
std::cout << "Philosopher" << p << "is eating" << std::endl;
Sleep(300);
LeaveCriticalSection(&chopstick[p]);
LeaveCriticalSection(&chopstick[(p + 1) % 5]);
std::cout << "Philosopher" << p << "finish" << std::endl;
return 0;
}
int main()
{
clock_t t;
t = clock();
int i;
for (i = 0; i < 5; i++)
{
InitializeCriticalSection(&chopstick[i]);
}
for (i = 0; i < 5; i++)
{
int count;
count = 0;
philosopher[i] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func,(LPVOID)(i), 0, NULL);
}
for (i = 0; i < 5; i++)
{
WaitForSingleObject(philosopher[i], INFINITE);
}
t = clock() - t;
std::cout << "seconds " << ((float)t) / CLOCKS_PER_SEC << std::endl;
return 0;
}