【发布时间】:2015-01-25 11:15:37
【问题描述】:
我有一个主 python 脚本,它创建两个对象
obj1 = xmlobj()
list1, list2, list3 = obj1.parsexml("xmlfile")
//parsexml returns me three lists
obj2 = htmlobj()
str1 = obj2.createhtmltable(list1, list2, list3)
//creates a html table
但是,当我运行脚本时,主脚本不等待obj1.parsexml返回值,而是执行并立即进入下一个创建obj2的语句,因此甚至没有执行createhtmltable,因为list1,list2,list3没有返回其中的价值观。另外,parsexml 工作正常,没有任何错误
如何解决这个问题,谢谢
【问题讨论】:
-
您需要使用输入和输出队列。一组线程应该从 task 队列中获取文件名/url,并将
parsexml的结果转储到 results 队列中。然后你的主线程可以从结果队列中读取并转换为 html 文件。 -
当然,会尝试更新它
-
您的描述没有意义。在调用
obj1.parsexml("xmlfile")之后,在此调用返回之前不会继续执行。如果您在该函数中启动线程,它们将独立运行,但这是一个不同的问题。
标签: python multithreading class