マルチスレッドクローラーでは、エラーが発生したり、例外処理を行ったり、現在クロールしているページを記録したりすることがあります。記録されたページ数は単一のスレッドで共有され、グローバル変数として使用することはできません
python3マルチスレッドスレッドにはメソッドがあります。threading.currentThread()は、メソッド内の変数の値を記録するために使用されます。
threading.currentThread()。pageは、プロセス内のページのパラメーターを表します
例外処理で現在の変数をスローするだけで済みます
import time
import threading
exitFlag = 0
class myThread (threading.Thread):
def __init__(self, threadID, name, page):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.page = page
def run(self):
self.page = room(self.page)
self.page = room(self.page)
print ("开启线程:" + self.name)
print(threading.currentThread().page)
print ("退出线程:" + self.name)
def room(page):
try:
page = page+1
s
except Exception as e:
return page
else:
pass
finally:
pass
threadList = ["进程-1", "进程-2", "进程-3"]
threads = []
threadID = 1
# 创建新线程
for tName in threadList:
thread = myThread(threadID, tName,5)
thread.start()
threads.append(thread)
threadID += 1
for t in threads:
t.join()
print ("退出主线程")
最終結果を実行します
开启线程:进程-1
7
退出线程:进程-1
开启线程:进程-2
7
退出线程:进程-2
开启线程:进程-3
7
退出线程:进程-3
退出主线程