《恐怖游轮》其实讲述一个了计算机应用程序的一个概念——并行处理(多线程)。
并行处理(Parallel Processing)是计算机系统中能同时执行两个或多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。
多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。 在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程(台湾译作“执行绪”),进而提升整体处理性能。
电影里边实际上是由7,8个情节基本相同,且循环不止的故事组成。只是7,8个故事交错一起,相互影响,后一个故事需要前一个故事的部分结果,而前一个故事里又可以看到后一个故事发展。这就像并行处理时的多个线程的关系,每个从自身相应的位置开始启动,一个线程产生了数据,然后被另一个线程用到了,然后这个线程产生的数据又被下一个线程用到了。
并行处理是很常见的方式,比如商场里同时运行的电梯,工厂里同时运行的流水线,都是同样的道理。恐怖游轮的高明之处在于,它并不是每个处理程序从头看到尾,而是选择了每个线程中某一段,然后从时间顺序上又把他们拼在了一起,于是便是我们看到的电影内容了。这里边涉及到了一个内存对象引用的问题,本来我们的主观世界里,一个人是独无二的,但是在计算机的虚拟世界里,完全相同的对象是司空见惯的,只是他们的状态会有所不同,这在电影也是做了不同的映射,拿枪的杰西、写字的杰西、拿斧子子的杰西,掉海里的杰西、撞车的杰西、都是预先设定,就像玩游戏的NPC剧情任务一样,一切都早有安排,但是导演把我们的视角在几个并行的副本上跳来跳去,却是别有一番感受。
这部电影很多人觉得很烧脑,关健就是导演用函数代入的东西,一个函数公式变成了另一个参数,然而他们用了同样的变量名,比如y=f(f(x*f(x))+f(y))这样的式子,话说我当时学高数的时候就被绕了很久,f(y)里的y和等号前边的y是同一个东西吗?显然不是,但有时候你就会掉进这个圈套里,《恐怖游轮》亦如此,这个杰西,那个杰西,都不是同一个杰西。只是他们使用了同样的角色,同样的行为方式,并把他们揉在一起,就像一绕在一起的毛线,这些毛线本是各自独立可以分离,但你一眼看上去就像连接一起的一个整体。
写于2019年3月3日
网友评论