使用multiprocessing.Process时Python进行coredumping

时间:2015-05-27 07:52:54

标签: python linux x86 python-multiprocessing squish

我使用squish来测试qt应用程序。问题是挤压不支持线程:

http://kb.froglogic.com/display/KB/Article+-+Using+Threads+in+Python

但是,我需要使用线程,因为我需要通过tcp定期与被测应用程序通信。

我有一个脚本,它在主线程中执行以下操作:

squishtest.waitForObject(":My_Button")
squishtest.waitForObject(":My_Button")

这些挤压命令将关闭两个在启动应用程序时弹出的对话框。虽然每个squish命令都在执行,但我确实注意到所有的tcp线程(threading.Thread)都被阻塞,直到squish命令返回。如果以这种方式阻塞线程,我无法测试正在测试的应用程序。 因此我觉得我可以使用多处理模块来解决这个问题,所以我尝试了:

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

但是当我尝试时这很好用:

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

我看到在执行python的命令行输出以下文本:

RemoteInspector(0x0x8702b28)::type: Invalid class id 493 for appid 156850424

这是什么意思?

然后我为了它而尝试了这个:

p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()

squishtest.waitForObject(":My_Button")

这次我也从python中获得了一个coredump:

RemoteInspector(0x0x81b5ac8)::type: Invalid class id 493 for appid 156850440
Aborted (core dumped)

这里的问题可能是什么?我的方法是解决这样一个事实,即挤压阻塞我的线程是明​​智的吗?你能提出另一种方法吗?

我正在使用python 2.6。

0 个答案:

没有答案