На моем двухъядерном компьютере работает следующий код.
Когда я запускаю один или два экземпляра приложения на одном и том же ПК, правильное временное разрешение составляет 100 мс.Однако, когда я запустил 3 экземпляра одного и того же приложения на одном и том же ПК, временное разрешение превысило 100 мсек.Можно ли вообще заставить 3 экземпляра приложения работать с одинаковым разрешением 100 мс?Это связано с количеством ядер на моей машине?
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
void timer_handler ( int signum)
{
double time ;
// obtain time here
gettimeofday() ;
printf("timer_handler at time = %lf \n",
time ) ;
}
int main ()
{
struct sigaction sa;
struct itimerval timer ;
memset ( &sa, 0, sizeof ( sa ) ) ;
sa.sa_handler = &timer_handler ;
sigaction ( SIGALRM, &sa, NULL );
timer.it_value.tv_sec = 0 ;
timer.it_value.tv_usec = 100000;
timer.it_interval.tv_sec = 0;
timer.it_interval.tv_usec = 100000 ;
setitimer ( ITIMER_REAL, &timer, NULL ) ;
for (;;);
}