我正在使用线程来加速通过RESTful API从网站收集数据。我将结果存储在一个列表中,稍后我将介绍该列表。我已经将列表设为全局,但是当我尝试在线程之外打印(列表)时,我没有看到任何结果。在其中,我可以打印(列表)并看到它是否正确附加了所有数据。收集这些数据的最佳方法是什么?
global global_list
global_list = []
pool = ActivePool()
s = threading.Sempahore(3)
def get_data(s, pool, i, list):
with s:
name = threading.currentThread().getName()
pool.makeActive(Name)
data = []
session = get_session(login info and url)#function for establishing connection to remote site
request = {API Call 'i'}
response = session.post(someurl, json=request)
session.close()
data = response.json()
global_list.append(data)
pool.makeInactive(name)
def main():
for i in api_list:
t = threading.Thread(target=get_data, name=i['uniqueID'], args=(s, pool, i, global_list))
print(global_list)
if __name__ == '__main__':
main()
我能够使用队列!根据下面的问题,我将 put() 所需的数据存储在线程中,然后将其存储在线程外部使用 get() 附加的列表中。
从线程返回值