多线程没有运行任务

时间:2018-01-14 03:41:16

标签: python python-multithreading

所以我整天都在忙着处理这种多线程,但似乎可以让它发挥作用。它也在Python 3中。

该程序试图生成1000个字的列表1000次并使用多线程来提高速度。

我已经将代码改为不同的方法,我在线搜索但没有结果。

凭借我目前所拥有的,它将毫无问题地运行,但不会打印任何单词。

任何人都有可能看一眼。

import random
from threading import Thread

word_file = "words.txt"


def gen():
    Words = open(word_file).read().splitlines() #retreiving and sorting word file
    seed = random.randrange(0,2048) #amount of words to choose from in list

    for x in range(0, 1000):
        print(random.choices(Words, k=5)) #print the words

def main():
    t1 = Thread(target=gen)
    t2 = Thread(target=gen)
    t3 = Thread(target=gen)
    t4 = Thread(target=gen)
    t1.start()
    t2.start()
    t3.start()
    t4.start()

print("completed")

1 个答案:

答案 0 :(得分:0)

非常简单:您的代码不会调用任何函数,而只是构建它们并让它们独自存在。

只需在main()之前添加print("completed"),以便代码调用该函数。

注1:为什么要在循环内一遍又一遍地读取文本文件,以及为什么要手动打开它?通过以下方式自动关闭它:

with open(word_file, "r") as f:
    Words = f.read().splitlines()

gen()之前的代码。

注2:seed在做什么?你定义了它,但没有在任何地方使用它。

注3:请在发布问题前检查缩进。