線程是進程中某個單一順序的控制流。線程在進程中被創建,并且執行一定的任務,任務結束后線程終止。
線程從屬于進程,一個進程可以同時包含n個線程。這n個線程在時間上是同時運行的,直到各自任務結束后終止。可以理解成高速公路上的n輛汽車,同時向前開,它們有不同的目的地,會在各自到達目的地后停下來。
從這個來解讀的話,你會發現,其實真的非常形象。
首先整個世界是一個運行中的應用程序,是一個進程。我們都運行于這個進程中。
而基礎是建立在一個設定上,那就是人類在死亡的時候會保留最后8分鐘的記憶。電影里面的教授們認為這8分鐘的記憶是“世界”這個應用程序中的一段源代碼。
火車爆炸事件發生后,教授把火車上一名乘客死前8分鐘的記憶(源代碼)保存了下來。他的想法是,可以啟動一個線程去反復執行這8分鐘的代碼,找到恐怖分子以避免將要在市中心發生的第二次爆炸。但是他們并沒有掌握創建線程的能力,只能利用現有的線程。林隊長犧牲,只剩下大腦還是活動的,這個活動的大腦就是一個線程。
而被反復啟動林隊長的大腦(線程),讓該線程去執行那8分鐘的源代碼。理論上,這8分鐘的源代碼執行完畢后,這個線程就會終止。林隊長的大腦就會從中脫離出來,回到初始狀態,電影中用林隊長處于一個全封閉的鐵盒子中來表示這一狀態。
教授的理論似乎在實際運行過程中得到了驗證,因為林隊長在每次任務執行8分鐘后確實回到了初始狀態。
然而教授錯了。林隊長每次在任務執行8分鐘后回來的原因,并不是因為那段8分鐘的源代碼執行完畢了,而是因為林隊長每次都死亡了,要么被炸死,要么被火車撞死,要么被恐怖分子槍殺。被火車撞死和被殺那兩次,林隊長是在火車爆炸后才回來的,時間長于8分鐘。所以該線程不是終止于源代碼執行完畢,而是終止于終止指令(林隊長死亡)。
所以最后電影結束的時候,有兩個世界(進程)在并行的運行,一個是原來那個世界,一個是克隆出來的新世界。
原來那個世界里,火車爆炸發生了。克隆出來的新世界,火車爆炸沒有發生。”
(本章完)
(看完記得收藏書簽方便下次閱讀!)最近轉碼嚴重,讓我們更有動力,更新更快,麻煩你動動小手退出閱讀模式。謝謝</p>