У меня есть несколько потоков обработки событий. Я хочу назначить наносекундную метку времени каждому событию. Это должен быть уникальный идентификатор, хотя. Итак, в нечетном случае, когда два события приходят так, что им будет назначена одна и та же временная метка, я хочу, чтобы одно из них было увеличено на одну наносекунду. Учитывая, что реальная точность не на наносекундном уровне, это нормально, если учитывать временную метку системы.
В одной теме это тривиальная проблема. Но через несколько потоков это становится более сложным. Производительность абсолютно критична, поэтому идея наивной синхронизации на типичном типе генератора идентификаторов кажется слишком сложной.
Есть ли подход, который решает это с минимальной блокировкой или без нее?