これを数百のスレッドから使用し、複数のマシンで作業し、増分 ID が必要な場合は、最後に生成された ID 番号を保存してロックするための集中化された場所が必要になります。これは必ずしもデータベースにある必要はありませんが、それが最も一般的なオプションです。ID を提供するだけの中央サーバーでも同じ機能を提供できますが、これはおそらくこれを配布する目的に反します。
それらが増分である必要がある場合、どの形式のタイムスタンプも一意であるとは保証されません。
それらを増分する必要がない場合は、GUID が機能します。各システムでタイムスタンプ + ハードウェア ID の何らかのタイプのマージを実行すると、一意の識別子が得られる可能性がありますが、ID 番号の部分は必ずしも一意であるとは限りません。
ハードウェア ID と増分タイムスタンプのペアを使用できますか? これにより、特定の各マシンの ID が増分されますが、ドメイン全体で必ずしも一意になるとは限りません。
- - 編集 - - -
2 つの理由から、どの形式のタイムスタンプを使用してもうまくいかないと思います。
まず、使用するタイマーの解像度に関係なく、異なるマシン上の 2 つのスレッドがまったく同時にスケジュールを試行しないことを保証することはできません。十分に高い解像度では、可能性は低いですが、保証はされません。
第二に、これを機能させるには、上記の衝突の問題を解決できたとしても、すべてのシステムにマイクロ秒の精度でまったく同じクロックを持たせる必要があり、これは実際には実用的ではありません。