螺纹Perl与新xterm中的每个线程

时间:2013-10-28 21:13:04

标签: multithreading perl xterm

我正在创建一个线程程序,其中并非所有线程都在开始时生成。有些人必须等待一个或多个线程先完成。这不会是一个问题,除了我想保持xterm打开以读取输出。在某些情况下,管道到文件不起作用,因为终端输出会有一些奇怪的东西在它覆盖自己。

我一直在用 my $xt_hold = "xterm -sl 5000 -geometry 350x50+0+100 -iconic -hold -e $cmd"; system($xt_hold);创建xterm,但这不允许我在完成时加入该线程。还有另一种方法可以保持xterm打开并知道何时完成线程/加入线程?

如果使用GNU screen有更好的解决方案,那么我可能会对此感兴趣,但我的主要选择是xterm,因为我对它更熟悉。

2 个答案:

答案 0 :(得分:0)

我建议您使用其他方法:排队

使用Thread::Queue,您可以告诉每个工作线程将结果放入队列。另一个线程(为输出创建)将从队列中读取并将其输出到终端(或文件或DB等)。

答案 1 :(得分:0)

在尝试回答这个问题时,我意识到了一些事情。文本文件中显示的字符是颜色的控制字符,我猜还有删除/退格字符。这些只能由终端解释,因此我只能使用less -r查看原始终端中的日志文件。