所以这是我的情况。我有一个硬编码的脚本,总是运行两个同时的线程(使用cfthread)。基本上,脚本采用excel文件或csv文件,并将数据分成两部分,我的脚本并行创建网页。
然而,从创建的页面中可以明显看出,线程2(线程正在循环中生成)完成了它的工作部分......但是线程1只完成了其工作的一小部分...脚本也会在一定程度上消失。所以我很困惑为什么会发生这种情况?我唯一担心的是我运行的实际函数createPage(...)本身就产生了一个线程来完成它的工作,导致服务器吓坏了。我不知道这是否发生有两个原因......一个我无法访问该级别的服务器监控,另外两个,createpage(...)函数是黑盒子,因为它是一个专有的API函数
有什么建议吗?另外,有没有办法让createPage(...),如果它在其实现中产生一个线程,等待再次调用它之前完成?
以下是我的代码一般工作方式的伪代码:
<cfloop from=1 to=2>
<cfthread ...> //spawn threads
<cfloop from="pageWorkStart" to="pageWorkFinish">
<cfset createPage(...)> //at this point there are two threads calling this function, which itself may be spawning threads and is not waiting to finish... the server is potentially choking from queued processes backing up.
</cfloop>
</cfthread>
</cfloop>