SingleThreadExecutor(單執行緒執行器)

貓毛·波拿巴發表於2018-08-15
前要:一般的執行器會為每個任務單獨建立執行緒,起碼是分配單獨的執行緒,即每個任務有其自己的執行緒。這樣可以讓任務併發執行。
 
問題:既然這樣,為什麼只用一個執行緒處理多個任務呢?
    如果是這樣,那一個執行緒某一時刻只處理一個任務。這樣有什麼好處呢?我們有講到過,執行緒難就難在協調不同執行緒驅動的任務之間對記憶體和IO資源的使用,以使得這些資源不會同時被多個任務訪問。
 
應用場景:當多個任務都需要訪問同一個資源的時候,我們就需要對其進行控制,使得每次該資源只有一個執行緒在訪問。這樣才能保證執行緒安全。
 
未解決問題:利用SingleThreadExecutor最多隻能保證在本應用範圍內,一個資源同時只會有一個執行緒在訪問。並不能保證其他應用不會對該資源進行訪問。這問題該如何解決?

相關文章