比较Gevent线程的结果
Comparing results of Gevent threads
我是运行一个与gevent异步的flask应用。我的主要应用有:
def multiple():
..........
threads = [gevent.spawn(fetch, data for i in range(2)]
result = gevent.joinall(threads)
print [thread.value for thread in threads]
return "DICTIONARY GOES HERE"
这运行时产生的数据略有不同(来自获取函数):
{u': False, 'delete_at': 1438759341.674, 'id': 43, 'fa': 5.4, 'created_at': 1438701741.674 }
{u': True, 'delete_at': 1438759341.675, 'id': 44, 'fa': 9.3, 'created_at': 1438701741.675 }
{u': False, 'delete_at': 1438759341.675, 'id': 47, 'fa': 4.7, 'created_at': 1438701741.675 }
我只想 return 一个 u = True 的字典,或者如果有多个,则第一个为 true 的字典。我该怎么做?
我会简单地写这样的东西:
...
result = gevent.joinall(threads)
for x in (t.value for t in threads):
if x.u:
return x
或:
...
result = gevent.joinall(threads)
return (t.value for t in threads if t.u).next()
我是运行一个与gevent异步的flask应用。我的主要应用有:
def multiple():
..........
threads = [gevent.spawn(fetch, data for i in range(2)]
result = gevent.joinall(threads)
print [thread.value for thread in threads]
return "DICTIONARY GOES HERE"
这运行时产生的数据略有不同(来自获取函数):
{u': False, 'delete_at': 1438759341.674, 'id': 43, 'fa': 5.4, 'created_at': 1438701741.674 }
{u': True, 'delete_at': 1438759341.675, 'id': 44, 'fa': 9.3, 'created_at': 1438701741.675 }
{u': False, 'delete_at': 1438759341.675, 'id': 47, 'fa': 4.7, 'created_at': 1438701741.675 }
我只想 return 一个 u = True 的字典,或者如果有多个,则第一个为 true 的字典。我该怎么做?
我会简单地写这样的东西:
...
result = gevent.joinall(threads)
for x in (t.value for t in threads):
if x.u:
return x
或:
...
result = gevent.joinall(threads)
return (t.value for t in threads if t.u).next()