本人使用场景是,获取用户数据,然后插入到库中,并返回查询该用户的相关结果,实际上包含两个操作:
1.插入 无返回值 2.查询,有返回值。这两个操作没有依赖关系,就是不插入也可以返回查询结果,为什么选择并行,是因为插入操作耗时,如果是串行计算会影响查询返回时间。
实现demo如下,使用Python3实现:
# -*- coding: utf-8 -*-
"""
@author: JiaWei Tian
"""
# thread_test 2019/3/6 8:37 PM
import threading
import time
class MyThread(threading.Thread):
def __init__(self, func, args, name=''):
threading.Thread.__init__(self)
self.name = name
self.func = func
self.args = args
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result
except Exception:
return None
def one():
time.sleep(5)
print('one', '111')
def two(i):
a = i+3
print('two', a)
return a
def get_result(a):
threads = [] # 定义一个线程池
t = MyThread(two, (a,), two.__name__)
t1 = threading.Thread(target=one) # 建立一个线程并且赋给t1,这个线程指定调用方法one,并且不带参数
threads.append(t) # 把t1线程装到threads线程池里
# t2 = threading.Thread(target=two, args=(a,))
threads.append(t1)
t.start()
b = threads[0].get_result()
print('result',b)
t1.start()
return b
if __name__ == "__main__":
# a = 1
b = get_result(122)
print('b result', b)
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。