我有一个Python(2.7)程序,可以产生100个线程的批次。每100个线程必须具有自己的全局锁和自己的全局字符串。我将threading.Thread
模块作为子类。我认为对于全局锁,我可以将其传递给每个线程的构造函数。但是,我不确定全局字符串。如果我将字符串传递给每个线程的构造函数,则每个线程将具有其自己的字符串实例。
我希望每100个线程的全局变量都像类变量一样起作用。
class Test(threading.Thread):
def __init__(self, someString, lock):
super(Test, self).__init__()
self._someString = someString
self._LOCK = lock
def run(self):
# How would I change self._someString for all 100 threads in this particular batch?
lock1 = threading.Lock()
for _ in xrange(100): Test('x1', lock1).start()
lock2 = threading.Lock()
for _ in xrange(100): Test('x2', lock2).start()
我试图在字典中传递字符串:
lock1 = threading.Lock()
str1 = {'str':'some string'}
for _ in xrange(100): Test(str1, lock1).start()
但这似乎也不起作用。仍然只修改了该特定线程的字典。