У меня в моей программе C поток, выполняющий некоторые работы. И я запускаю этот поток несколько раз в своей программе с pthread_create() в цикле, как показано ниже.такой же машина такой же program другой cpu время. Зачем?
for (i=0; i<20; i++) {
pthread_create(&thread[i], NULL, thread_run, result_thread[i]);
pthread_join(thread[i], NULL);
}
Я также отслеживание времени центрального процессора этих потоков с pthread_getcpuclockid(). Дело даже в том же вводе, что время процессора этих потоков может сильно отличаться.
Например, см. Ниже группу времени процессора, которое я записал (в миллисекундах).
0,0051 0,0127 0,0113 0,0106 0,0117 0,0125 0,0120 0,0112 0,0111 0,0193 0,0112 0,0162 0,0036 0,0036 0,0035 0,0036 0,0035 0,0036 0,0036 0,0036
Что Коу Может быть причина этих различий?
Я использую Ubuntu кстати.
Это зависит от многих вещей! Как то, что процессор должен делать, какую другую программу он должен обрабатывать, и так далее. – Rizier123
Почему вы ожидаете, что они будут одинаковыми, когда состояние компьютера будет отличаться каждый раз? –
@ Rizier123 Хм, я измеряю процессорное время каждого потока. Что это связано с другими программами? – Zlol