我对线程模块很新,但我的问题是线程似乎无法启动。我试图使用currentThread函数来查看它们是新线程的开始但我唯一看到的是主线程。此外,在每个教程中,我看到他们使用类或子类,如类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()
答案 0 :(得分:4)
thread.join()
做什么是等待线程结束它正在做的事情。要允许其他线程启动,请将此行移至过程的末尾。
答案 1 :(得分:1)
current_thread()返回主线程,因为您在main方法中调用它。从方法“basicThread”打印的行表示运行该方法的实际线程(它们是新形成的线程)。
将thread_1.join()移至底部,如上一个答案