У меня есть 2 процесса (не потока), которые должны одновременно читать системные часы. Для этого в первом процессе используется
QTime::currentTime();
а второй процесс использует
std::chrono::high_resolution_clock::now();
Но когда я читаю соответствующие значения часов, считанные этими двумя процессами, я обнаруживаю, что всегда есть разница в несколько микросекунд. Это потому, что системные часы являются общим ресурсом, поэтому один должен ждать, пока другой закончит чтение? Это потому, что функции, которые считывают системные часы, не совпадают, поэтому разрешение времени не то же самое? (но мне это кажется очень маловероятным... потому что, насколько я понимаю, временное разрешение устанавливается RTC, а не высокоуровневыми API)
Я не использую никаких конкретных «мер» для синхронизации этих 2 процесса. Первый постоянно пытается прочитать системные часы (у него есть время (1)), второй читает системные часы, когда я его запускаю. Итак, поскольку первый процесс всегда пытается прочитать системные часы, я предполагаю, что, вероятно, возникнет «состояние гонки», когда процесс 2 попытается прочитать часы.