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