2011-08-23 45 views
3

我一直在玩與周圍的ApacheBench(ab)命令行實用程序,但我不知道它是什麼,我試圖做正確的工具。PHP usleep與同時請求

我跑10個併發和10個請求做一個插入一個MySQL表,看着round(microtime(1) * 10000),看看我得到了相同的值。

我想知道如果使用延遲執行usleep()足以防止兩個同時發生的請求在同一個盒子上獲得相同的值,或者time_sleep_until更好。

我知道我可以設置更多的熵uniqid()

所以我只是想知道如果使用延遲執行將足以防止兩個確切的時間戳。

回答

1

所以,你要知道,如果round(microtime(1) * 10000)能給重複值?當然,它可以,我不認爲你需要爲此進行測試。

uniqid也不能保證是獨一無二的,即使有更多的熵。

如果唯一性是非常重要的,你總是可以使用MySQL具有唯一索引強制唯一性。

+0

強制執行獨特的索引聽起來不錯,謝謝Frits;) – david

+1

我總是測試,Stackoverflow在「如何問」中提到,共享研究可以幫助每個人,它表明我們花時間去嘗試幫助自己。 – david

+1

這是值得讚揚的。通常,當你需要做一個非常具體的任務時,比如產生一個唯一的數字,它有一些功能。但是像隨機性和唯一性這樣的東西在計算上很難*。 – Halcyon