Semaphore
多執行緒下控制可使用資源的執行緒上限數 比喻作夜店的安管人員再洽當不過,安管人員可控制夜店入場人數, 例如今天只開放100人入場,超過此人數則不得再進場,除非有人離開才可以放行, 控制人數在上限 100。 在多執行緒的情形下,資源的掌握更顯得重要,如資料庫資源。 But, what's the difference between semaphore and singleton? singleton 是用來作 lock,可以想成是一次只開放一個人進場的安管,這樣就很好理解了。 在查到的資料上顯示,若在上限為一個物件存取的情形下, 效能上 singleton 比 semaphore 好多了。 reference: Android Semaphore