擅长:python、mysql、java
<p>为什么要使用全局var?与freakish相同的代码,但没有传递到线程的全局变量:</p>
<pre><code>#!/usr/bin/python3
import threading
class MyThread(threading.Thread):
def __init__(self, target, name=None, args=(), kwargs={}):
super().__init__(target=target, name=name, args=args, kwargs=kwargs)
self.output = None
def run(self):
self.output = self._target(*self._args, **self._kwargs)
def my_task(i):
# do something
return 'response ' + str(i)
def main():
total_data = list()
threads = []
for i in range(5):
t = MyThread(target=my_task, args=[i,])
t.start()
threads.append(t)
for t in threads:
t.join()
total_data.append(t.output)
print(total_data)
if __name__ == "__main__":
main()
</code></pre>
<p>输出为:</p>
<pre><code>Jean@MyDesktop:~$ ./test_threads.py
['response 0', 'response 1', 'response 2', 'response 3', 'response 4']
</code></pre>
<p>@yorodm:在这种情况下,我认为多线程应该足够了,除非在本地对数据进行繁重的处理。你知道吗</p>