小编Omi*_*mid的帖子

如何在写信给孩子时阻止父母阻止?

最近,当我想在两个进程之间进行通信时,我遇到了使用(pipe | - )的问题.基本上,子进程无法像父进程一样快地处理STDIN.这导致父级等待STDIN空闲并使其运行缓慢.

STDIN有多大,可以修改它.如果是,最佳练习大小是多少?

这是一些代码示例,以显示我的意思:

if ($child_pid = open($child, "|-"))
{
    $child->autoflush(1);

    # PARENT process
    while (1)
    {

             # Read packet from socket save in $packet
             process_packet($packet);

             # forward packet to child
             print $child $packet;
     }
}
else
{
     die "Cannot fork: $!" unless defined $child_pid;
     # CHILD process
     my $line;  

     while($line = <STDIN>)
     {
         chomp $line;
         another_process_packet($line);
     }
}
Run Code Online (Sandbox Code Playgroud)

在这个样本another_process_packet慢于process_packet.我写这样的代码的原因是,我想使用相同的数据来自套接字并实际获得它一次.

提前致谢.

perl ipc interprocess

3
推荐指数
1
解决办法
651
查看次数

标签 统计

interprocess ×1

ipc ×1

perl ×1