[請益] DB with singleton
一直以來只要是看到 singleton 的介紹千篇一律都是介紹如何運用在 DB 連線上
但我有一點不解的地方,這種作法在大量使用者時適當嗎?
public static function getInstance()
{
if (!(self::$_instance instanceof self))
self::$_instance = new self();
return self::$_instance;
}
假設有 10 名使用者, 編號 1 的使用者率先連線上來,
由於 !(self::$_instance instanceof self) 成立, 因此會執行 new self();
而接下來的 9 名使用者則會直接 return self::$_instance
我不解的地方是: 這樣的作法等於是 10 名使用者在共用這個 $_instance
當這 10 名使用者同時間丟出請求時,不就得落入排隊的囧境?
那如果是 100人,1000人時,不就得等更久了?
如果是這樣, 那不如一人給他一條線不是更好嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.148.137
→
10/10 18:06, , 1F
10/10 18:06, 1F
→
10/10 18:07, , 2F
10/10 18:07, 2F
→
10/10 18:08, , 3F
10/10 18:08, 3F
推
10/11 09:48, , 4F
10/11 09:48, 4F
→
10/11 09:48, , 5F
10/11 09:48, 5F
→
10/11 13:33, , 6F
10/11 13:33, 6F
→
10/11 13:34, , 7F
10/11 13:34, 7F
→
10/11 13:35, , 8F
10/11 13:35, 8F
→
10/11 18:47, , 9F
10/11 18:47, 9F
→
10/11 22:24, , 10F
10/11 22:24, 10F