Python のスレッド内で実行されるコードに問題があります。100 または 150 を超えるスレッドを使用し始めるまで、すべてが正常に機能し、その後、いくつかのスレッドで次のエラーが発生します。
resp.read(1)
UnboundLocalError: local variable 'resp' referenced before assignment.
コードは次のとおりです。
try:
resp = self.opener.open(request)
code = 200
except urllib2.HTTPError as e:
code = e.code
#print e.reason,_url
#sys.stdout.flush()
except urllib2.URLError as e:
resp = None
code = None
try:
if code:
# ttfb (time to first byte)
resp.read(1)
ttfb = time.time() - start
# ttlb (time to last byte)
resp.read()
ttlb = time.time() - start
else:
ttfb = 0
ttlb = 0
except httplib.IncompleteRead:
pass
例外が原因で「resp」が割り当てられていない場合は、例外が発生し、「コード」が割り当てられないため、「resp.read(1)」に入力できませんでした。
誰が失敗しているのかについての手がかりを持っていますか? スコープに関連していると思いますが、これを回避する方法や別の方法で実装する方法がわかりません。
ありがとうございます。