Perl多进程
【今日推荐】:为什么一到面试就懵逼!>>> 本文关于Perl进程的内容主体来自于《Pro Perl》的第21章。 创建新进程 Perl中可以使用 fork 函数来创建新的进程,它会调用操作系统的fork系统调用来创建新进程。 fork是Unix系统中的函数,在Windows中不原生支持fork。但从Perl 5.8开始,Perl提供了一个模拟的fork使其可以无视平台的差异,它是使用Perl解释器线程来实现的fork,因为解释器线程不自动共享数据,所以用来fork进程正好。换句话说,Perl 5.8开始fork是可以随意用来创建进程的。 fork函数会派生自己,通过自己克隆出一个子进程。这个克隆过程是完整的,因为子进程和父进程在克隆的过程中是完全一致的,子进程和父进程共享代码,克隆完成后才设置一些各进程独有的属性,比如有自己的文件句柄(已经文件句柄上的锁)、进程ID、优先级等等属性。 在fork新进程之后,就会有两个近乎完全一样的进程在并行运行。 fork有两个返回值,一个是给父进程的返回值,这个返回值是fork出来的子进程的PID(如果fork失败,则返回undef),一个是给子进程的返回值,这个返回值为0。所以,通过fork的返回值可以判断出进程是子进程还是父进程 。 if (my $pid = fork) { print "parent process\n"; print