在python

时间:2015-07-04 01:16:38

标签: python multithreading http thread-safety

for message in messages:
                self.numberT+=1
                if(self.numberT%100==0):
                    print str(self.numberT)
                thread1= threading.Thread(target=self.worker_gender,args=(message,))
                thread2 = threading.Thread(target=self.worker_sentiment,args=(message,))

                thread1.start()
                thread2.start()

所以我像这样开始我的代码,只需打开两个线程,给两个独立的函数并将它们都输入相同的输入。在这两个函数中,我称之为API

response = unirest.get(correct stuff),

然后我做了我想要的回复。我想我在这里做了一些不安全的线程。两者的响应都是JSON文件,显然有不同的字段。我发现错误被捕获,在定义之前使用了响应。响应变量是一个字典,所以我可以这样访问它,当我这样做时,我发现字段不存在(有时)。我认为我的线程代码是在错误的响应上执行的,我得到了我期望从线程1得到的响应,但它正在线程2中使用,依此类推。如果有人能指出一些资源,那就不会发生那种情况会很好。

另一个可能的问题是每个消息我打开两个访问两个api的线程。因此,当这开始时我可以有1000个线程,例如调用API 1和1000个线程并行调用API 2。我不知道这是否与它有关。

我真的认为我是以某种方式用http请求创建人为竞争条件。

谢谢你的帮助。

0 个答案:

没有答案