我对Python中的线程有问题(我承认,我是这个主题上的新手)。Python中的简单线程示例
我有对象,我想要在方法part1()(带有一些随机时间间隔)和part2()中生成数字列表 - 尽快打印所有生成的数字。
这里是我的代码:
import random
import time
from threading import Thread
class GenerateRand:
def __init__(self):
self.h = []
def part1(self):
while True:
r = random.choice(range(9))
self.h.append(r)
print "Rand in list:", self.h
time.sleep(random.randint(1, 100)/100.0)
def part2(self):
while True:
if self.h:
print "Get:", self.h.pop()
if __name__ == "__main__":
obj = GenerateRand()
th1 = Thread(target = obj.part1)
th2 = Thread(target = obj.part2)
th1.start()
th2.start()
th1.join()
th2.join()
这工作得很好,但是从线程打印混合。这段代码好吗? 有没有更好的(“pythonic”:)方法来做到这一点?
你为什么在这里使用线程? – jfs
这只是一个例子。你可以展示如何做到这一点没有线程? :) – mchfrnc
确定:'while True:print(random.randrange(9))' – jfs