class lookThread(threading.Thread):
data = []
def __init__(self,userid):
self.userid=userid
threading.Thread.__init__(self)
def run(self):
lock=threading.lock()
#lock
lock.acquire()
m=User.objects.get(userID=self.userid)
userlist=[]
userlist.append(m.userID)
userlist.append(m.realName)
userlist.append("")
userlist.append(m.IDNumber)
userlist.append(m.telNumber)
lookThread.data= userlist
#unlock
lock.release()
def lookuserinfo(userid):
new_thread=lookThread(userid)
new_thread.start()
resp = lookThread.data
return resp
答案 0 :(得分:0)
此方法可以将参数传递给线程,但不能返回变量'userlist'。我们可以使用数据结构Queue来获取'userlist'值。首先,在函数lookuserinfo()中初始化'queue = Queue.Queue()',将'queue'作为参数传递给线程,然后在线程中使用'self.queue.put(userlist)',最后使用'queue。函数中的get()'。而且,Queue是线程安全的。