【发布时间】:2026-01-17 22:20:02
【问题描述】:
我制作了一个可以以两种方式终止的程序,用户输入一个字符串say-“kill”或特定线程发出信号 SIGINT。
在这个终结者线程中我有一个语句(捕捉“杀死”):
$a = <>;
后跟一个'return;' 我在顶部也有适当的信号处理程序(用于 INT):
print "signal received\n";
threads->exit();
但是在自动终止的情况下(即 SIGINT 是从其他线程发送的),打印 stmt 直到我按下某个键才出现,无论我等待多长时间。我想 正在阻塞。
有人可以告诉我如何在自动终止的情况下向 提供某种输入,以便立即查看结果。
谢谢。
【问题讨论】:
-
在对 的调用中,您的线程已将控制权交给了操作系统。所以,是的,它会阻塞直到 eof。
-
如果你想闯入,你需要除了 line-i/o 以外的东西。
标签: multithreading perl signals