这是我的 Web 应用程序中的一些简化代码:
sub insert {
my $pid = fork();
if ($pid > 0) {
return;
}
else {
&insert_to_mysql();
my $last_id = &get_last_inserted(); # call mysql last_inserted_id
exit(0);
}
}
for my $i (1..10) {
&insert();
}
由于insert
是在多处理环境中调用的,因此 的顺序get_last_inserted
可能不确定。它是否总是返回与 insert_to_mysql
子程序相对应的正确最后一个 id?我读了一些文件说只要进程不共享同一个mysql连接,返回的id总是正确的。但是,这些进程是从同一个会话中产生的,所以我不确定它们是否共享 mysql 连接。提前致谢。