[求助]关于线程的问题

[求助]关于线程的问题

[求助]关于线程的问题
如何判断一个线程是否启动成功?




   

kill 进程 id
看返回值
忘记说了,要给参数 0 忘记说了,要给参数 0

kill(0,$id);
可是我是想在创建线程的时.
可是我是想在创建线程的时候得到他是否创建成功
[CCB]19[/CCB]
原来是线程啊
那要看看线程的文档了
如果你用的是 threads, 如果你用的是 threads,

my $thread = threads->create(\&code, undef);
if ($thread) {
# 创建成功
}
else {
# 创建失败
}
借此贴再问:如何捕捉失败原因
use Thread;
my $t = Thread->new(\&subrutine,◎params);
如果线程创建失败,会向STDERR输出“thread failed to start: xxxxxxxxxx”,xxx表示各种不同原因。我运行的一个程序得到的一个原因是“Invalid argument”。这个解释对我debug还是不够详细。我想知道“Invalid argument”是subrutine传递出来的,还是线程自己传递出来的。因为这个程序启动线程来调用subrutine有时成功,有时失败,但是我检查传递进去的参数没什么错误,因此我想进一步捕捉更详细的系统信息。看了文档里有用$t->eval()的方法,但是我在调用eval之后如何查看系统错误信息,$@里面也是空的。非要在subrutine里面去eval吗?
现在不用Thread了啵..
Invalid argument,应该是.
Invalid argument,应该是你传的@params里的args有问题吧。
perl多线程调试起来挺麻烦,个人感受。