确保函数永远不会两次返回相同的值[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 这是我在求职面试中被问到的一个问题,我无法弄清楚他们正在寻找的答案,所以我希望这里的人可能有一些想法。目的是编写一个保证永远不会两次返回相同值的函数。假设该功能将被多台机器同时访问。 我的想法是为每台机器分配一个唯一的ID,并将该值传递到唯一的值生成器函数中: var i = 0; function uniq(process_id, machine_id) { return (i += 1).toString() + machine_id + "-" + process_id; } 这将避免竞争条件带来的影响,因为即使两个或多个进程读取的相同值i,每个返回值都被标记为进程ID和计算机ID的唯一组合。但是,我的面试官不喜欢这个答案,因为使另一台计算机联机需要为其分配ID。 因此,有人能想到另一种解决此问题的方法,而不涉及将每台机器配置为具有唯一的ID吗?如果这个问题再次出现,我想得到一个答案。谢谢。