Python3マルチスレッドのシングルスレッドで変数を共有する

マルチスレッドクローラーでは、エラーが発生したり、例外処理を行ったり、現在クロールしているページを記録したりすることがあります。記録されたページ数は単一のスレッドで共有され、グローバル変数として使用することはできません

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
退出主线程

 

おすすめ

転載: blog.csdn.net/lows_H/article/details/103158224
おすすめ