山姆鍋從小就愛看漫畫,雖然隨著年紀看的量越來越少,不過幾部熱門的漫畫可是都有在關注。「火影忍者」雖然已經完結,但漩渦鳴人的「影分身」術 – 抱歉,是「多重影分身」之術還是留下深刻印象。常常在想,假如我有多重影分身術,那會是什麼光景!

之所以會對多重影分身術 [1] 特別有感覺,跟之前山姆鍋提過的「參與者模式(Actor Model )」的極度相似有關。 底下山姆鍋就來說說「影分身」跟「參與者」之間的相似處,藉此來介紹參與者模式的重要概念。

本體可以有限數量的影分身

受限於施術者本人「查克拉」的數量,就算是上忍大多會的也只是「影分身」術,並非「多重影分身」之術。只有漩渦鳴人這樣因為九尾的緣故,擁有大量「查克拉」的忍者有辦法使用「多重影分身」之術。

每個參與者 (Actor) 可以分出有限數量的參與者,數量受限於執行參與者系統的運算資源。 所以,參與者也不是想製造就可以一直製造的,總會有限制的,可以說運算資源就是參與者的「查克拉」。

影分身之間可以互相溝通

影分身與本體,以及影分身之間可以互相溝通,不管是直接口語,還是透過心靈傳輸。 參與者之間可以互相傳遞訊息 (message) 溝通,不管透過什麼通訊協定(communication protocols)。

每個影分身各自負責不同的任務

每個影分身並不是傀儡,各自有各自的意識,但可以互相協調共同完成任務。

每個參與者可以有不同的程式碼或腳本(script),同樣彼此互相協調共同完成任務。 參與者會根據收到的訊息,調整接下來要執行的動作,就算是同樣的腳本,每個參與者表現出來的行為也可以不同。

本體可以得到消失影分身得到的經驗

影分身消失後,施術者可以得到該影分身獲得的情報跟經驗。

參與者可以將執行結果回報給上層參與者。這點不是「參與者模式」所必須, 但幾個流行的「參與者模式」實作都有提供這樣的階層式機制。

結語

山姆鍋對於多重影分身之術的了解很表面,雖然還特地參考了一些網路文章,如有錯誤請多包涵。 希望這樣的比較不會讓您有不倫不類的感覺才好,學資訊技術,其實有時也可以不用那麼嚴肅,不是嗎?

參考資料

Actor Model: https://en.wikipedia.org/wiki/Actor_model

參與者模式,一種分散式系統編程 (programming) 模式。


  1. 山姆鍋很喜歡多重影分身這個概念,連自己公司名稱都叫做「影化身」。