齐亚德
亲爱的各位:
我想得到函数(Ziad_1)和函数(Ziad_2)的返回值?
- import time
- import thread
-
-
-
- def ziad_1(a):
- all_i = []
- print "Starte Unterprogramm ziad_1."
- for i in range (1, 5):
- time.sleep(3)
- i=a+i
- print "Thread 1: zaehler=", i
- all_i.append(i)
- print "ziad_1"
- print all_i
- return all_i
-
- def ziad_2(b):
- all_j = []
- print "Starte Unterprogramm ziad_2."
- for j in range (1, 5):
- time.sleep(3.1)
- j=b+j
- print "Thread 2: zaehler=", j
- all_j.append(j)
- print "ziad_2"
- print all_j
- return all_j
-
- th1=thread.start_new_thread(ziad_1, (1,))
- th2=thread.start_new_thread(ziad_2, (1,))
#
谢谢
附加图像
Aufzeichnen.jpg
(68.1KB,295次浏览)
# 回答1
最简单的解决方案是把所有东西都放在一个班级里。下次请使用代码标签顶部的"#"按钮。
- import time
- import threading
-
-
- class TestThread():
- def __init__(self):
- self.all_i = []
- self.all_j = []
-
- def ziad_1(self, a):
- print "Starte Unterprogramm ziad_1."
- for i in range (1, 5):
- time.sleep(3)
- i=a+i
- print "Thread 1: zaehler=", i
- self.all_i.append(i)
- print "ziad_1"
- print self.all_i
-
- def ziad_2(self, b):
- print "Starte Unterprogramm ziad_2."
- for j in range (10, 15):
- time.sleep(3.1)
- j=b+j
- print "Thread 2: zaehler=", j
- self.all_j.append(j)
- print "ziad_2"
- print "all_j", self.all_j
-
- TT=TestThread()
- th1=threading.Thread(target=TT.ziad_1, args=(1,))
- th1.start()
- th2=threading.Thread(target=TT.ziad_2, args=(1,))
- th2.start()
- th1.join()
- th2.join()
-
- print "\nafter thread, all_i", TT.all_i
- print "after thread, all_j", TT.all_j
# 回答2
谢谢你,伙计。
我还发现了另一个使用队列模块的解决方案。
附加图像
Aufzeichnen.jpg
(77.5KB,340次浏览)