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

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

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

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

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

影分身之間可以互相溝通

影分身與本體 , 以及影分身之間可以互相溝通 , 不管是直接口語 , 還是透過心靈傳輸 。

參與者之間可以互相傳遞訊息 (message) 溝通 , 不管透過什麼通訊協定 (communication protocols)。

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

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

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

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

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

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

結語

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

參考資料

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

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

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