我有一个程序(proc1),在这个程序中,我创建了一个新线程(Thr1),在那里我启动了一个新进程(Proc2)。Thr1-有一个无限循环,等待来自Proc2的信号。Proc2是一个服务器,它总是等待来自任何客户机的连接。在
在proc1中,我启动一个新线程,如下所示:client = Thread(target=func , kwargs=some)
client.start()
print 'THREADs', threading.enumerate()
输出是:THREADs [<_mainthread started>, Thread(Thread-1, started 140133872453376)>]
从Thr1开始,我有下一个输出:THREADs in thread [<_mainthread started>,
Thread(Thread-1, started 140133872453376)>]
在Thr1中,我启动过程如下:
^{pr2}$
在proc2中,我有下一个输出:THREADs in proc [Thread(Thread-1, started 140133872453376)>]
新的proc2与Thr1的id相同是否正常?在
我问这个问题是因为这两个程序proc1和proc2分别工作得很好。但是我需要把它们组合起来,这样proc1应该启动proc2。当我把它们结合在一起时,有时我会出现分割错误。并非每次运行都会出现故障。只是有时候。有时服务器接收数据,然后proc1失败,有时Thr1启动,然后程序失败。在Thr1和proc2启动后失败了,我想我做错了什么。在
如何在线程中正确启动进程?在