Похоже, что таймер с высоким разрешением Linux начинает отсчитываться в рамках каждого потока - не глобально в приложении.
Я попытался использовать CLOCK_PROCESS_CPUTIME_ID, но это дает мне такое поведение потока?
CLOCK_PROCESS_CPUTIME_ID (since Linux 2.6.12) High-resolution per-process timer from the CPU. CLOCK_THREAD_CPUTIME_ID (since Linux 2.6.12) Thread-specific CPU-time clock.
Поиск таймера высокого разрешения по потокам.
(Глобальные таймеры в миллисекундах, а высокое разрешение - в наносекундах).
Как получить высокое разрешение в многопоточной среде?
Попробуйте с getTimeofday
который должен дать время в разрешении microseconds
(Reference: Linux Man Page)
Вы также можете обратиться к этому вопросу: как создать таймер высокого разрешения в Linux для измерения производительности программы?