我有一个Perl脚本,我正在尝试使用Perl线程(使用线程)来设置它。当我运行简单测试时,一切正常,但是当我执行实际脚本(它让线程运行多个SQL_Plus会话)时,每个SQL_Plus会话按顺序运行(即线程1的sqlplus运行步骤1-5,然后线程2的sqlplus运行步骤6-11,等等)。
我以为我明白线程会进行并发处理,但有些地方不对劲。有什么想法吗,还是我应该做一些其他的Perl魔术?
发布于 2008-09-17 19:20:23
以下是一些可能的解释:
。
发布于 2008-09-17 18:45:16
实际上,您无法保证线程执行的顺序。因此,这种行为(如果不是你期望的那样)并不是真的错。
我怀疑你正在进行某种同步。可能只是让我们自己被调用一次吗?有些程序这样做..。
其他可能性:
发布于 2008-09-18 04:02:25
检查数据库设置。你可能会发现它是以保守的方式设置的。这将导致即使是较小的读取也会阻止对该信息的所有访问。
您还可能需要调用threads::yield
。
https://stackoverflow.com/questions/86220
复制相似问题