如何在某些线程之间共享全局数据?

时间:2019-04-17 04:26:39

标签: python python-2.7

我有一个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()

但这似乎也不起作用。仍然只修改了该特定线程的字典。

0 个答案:

没有答案