【发布时间】:2012-01-29 07:08:36
【问题描述】:
我有多个线程处理事件。我想为每个事件分配一个纳秒时间戳。不过,它必须是唯一的 id。因此,在两个事件到达的奇怪情况下,它们将被分配相同的时间戳,我希望其中一个事件增加一纳秒。鉴于真正的精度不在纳秒级,就系统的时间戳性质而言,这是可以的。
在一个线程中,这是一个微不足道的问题。但是跨多个线程,它变得更具挑战性。性能是绝对关键的,因此在典型的 id 生成器类型上天真地同步的想法似乎会阻塞太多。
是否有某种方法可以通过最少的锁定或不锁定来解决这个问题?
【问题讨论】:
标签: multithreading performance haskell uniqueidentifier