今天抽时间又学了一下python的多线程,理解的又多了一些,为了利于理解,写了一段很简单的代码,如下:
import threading
from time import sleep
def task1(): #线程函数1
for i in range(0, 9):
print("i am thread one !!")
def task2(name): #线程函数2
print('hello {0} {1}'.format(name, 'weiyang'))
sleep(1)
t1 = threading.Thread(target=task1, ) #线程一,Thread函数有两个参数,第一个是要调用的线程函数,第二个是要给所调用的线程函数所传的参数,以元组的形式传入,如果只有一个参数,则必须在后面加上一个',’ ,要不会报错。
t2 = threading.Thread(target=task2, args=('zhang', )) #线程二
t1.start() #开始线程一
# t1.join()
t2.start() #开始线程二
看一下输出结果:
可以看到,在线程一还没执行结束时,线程二就已经开始了,这说明两个线程之间的工作室相互独立、互不影响的。
如果想要让线程一执行完之后再开始线程二,可以在t1.start()的后面加一句t1.join(),这个函数的意义是线程等待,程序会停留在这里,等线程一执行完之后再继续执行下面的代码。