繁体   English   中英

Python线程 - 线程无法启动

[英]Python Threading — Threads not starting

我对线程模块很新,但我的问题是线程似乎无法启动。我试图使用currentThread函数来查看它们是新线程的开始,但我唯一看到的是主线程。另外,在每个教程我都看到他们使用类或子类,比如class t(threading.Thread)。 所以我的方法是错的还是我必须使用类来启动python 3中的线程。这是我编写的一些脚本:

首先:

    import threading

    def basicThread(threadName,nr):
        print("Thread name ",threadName,", alive threads ",nr)

    for i in range(0,11):
        print(threading.activeCount())
        print(threading.currentThread())
        t = threading.Thread(target = basicThread,args = ("Thread - %s" %i,i,))
        t.start()
        t.join()

第二:

import threading

def openFile():
    try:
        file = open("haha.txt","r+")
        print("Finished in opening file : {0}".format(file))
    except IOError as e:
           print("Error : {0}".format(e))

def user(threadName,count):
    age = int(input("Enter your age : "))
    name = str(input("Enter your name : "))
    print(age,name)
    print(threadName,count)

threadList = []

thread_1 = threading.Thread(target = openFile)
thread_1.start()
thread_1.join()
thread_2 = threading.Thread(target = user,args = ("Thread - 2",threading.activeCount()))
thread_2.start()
thread_2.join()

thread.join()做的是等待线程结束它正在做的事情。 要允许其他线程启动,请将此行移至过程的末尾。

  1. current_thread()返回主线程,因为您在main方法中调用它。 从方法“basicThread”打印的行表示运行该方法的实际线程(它们是新形成的线程)。

  2. 将thread_1.join()移动到底部,如上一个答案中所示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM