如何将args发送到两个不同的线程?

时间:2018-12-13 00:56:52

标签: python multithreading for-loop

所以我一直在尝试使用for循环和线程。我的想法是要有一个names.txt文件,在程序运行时可以在其中添加名称。在文本文件中是否找到新名称。它应该将其添加为新线程并运行脚本。

我在这里编写了一个如下脚本:

def testscript(thread):
    print(thread)

def script():
    old_list = []

    old_names_list = []

    while True:
        new_names_list = [line.rstrip('\n') for line in open('names.txt')]

        for new_thread in get_random_names(): #A function that contians 100 random names

            if not new_names_list == old_names_list: 
                for i in new_names_list:
                    if not i in old_names_list:
                        print(i)
                old_names_list = new_names_list


            if new_thread not in old_list: #If the names are not added in old_list. start new thread.
                threading.Thread(target=testscript, args=(new_thread,)).start()
                old_list.append(new_thread)

        else:
            randomtime = random.randint(1, 3)
            time.sleep(randomtime)

我现在的问题是,我设法弄清楚了何时添加名称,它将使用以下代码将其打印出来:

if not new_names_list == old_names_list: 
                for i in new_names_list:
                    if not i in old_names_list:
                        print(i)
                old_names_list = new_names_list

问题是我还需要在下面使用此代码,因为我还想打印出所有名称。

if new_thread not in old_list:
      threading.Thread(target=testscript, args=(new_thread,)).start()
      old_list.append(new_thread)

我的想法是首先打印出所有名称,如果添加了新名称,则应为其添加一个新线程,并将名称保留在类似于args中threading.Thread(target=testscript, args=(new_thread, i)).start() #i的args中。

我的问题是:我如何能够为添加到old_list的所有新项目发送一个线程,以及仅发送names.txt中的名称的线程?

0 个答案:

没有答案