我是python线程的新手,作为我写的第一个任务:
from twitterHandler import Twitter_User
from text_analyzer import text_analyzer
import threading
if __name__=='__main__':
usersIDS = {'user1':24503301,'user2':7375922343546478338,'user3':2144265434,'user4':50090727}
threads = {}
def get_data(user_id):
'''get the most common words used by twitter user un his text tweet and save it in a file object'''
...
for user_name, user_id in usersIDS.items():
t = threading.Thread(target=get_data,args=(user_id,))
threads[user_name] = t
print('Starting to get data for: {}'.format(user_name)
t.start()
for name,t in threads.items():
t.join()
print('Process for {} Stopped'.format(name))
代码有效,但我想知道这是否是线程的典型用例,或者我只是可以做类似的事情。
for user_id in usersIDS.values():
get_data(user_id)
...
换句话说,多线程是我的问题的正确选择吗?非常感谢
答案 0 :(得分:1)
是的,在我看来这是一种很好的方法而且非常普遍。线程用于以下情况:
我认为您的案件可以视为第一组和第二组。每个人对象分析不依赖于其他人分析的输出。但是,如果您拥有大量用户和单词数据,则可能会导致计算机出现问题,因为它必须管理每个线程的创建和销毁。无论如何,这是个人决定使用线程与否。