from threading import Thread
import threading
import time
data = []
def download_image(url,num):
"""下载图片"""
global data
time.sleep(5)
print(url,num)
data.append(num)
def read_data():
global data
for i in data :
print(i)
if name == 'main':
#获取当前线程的名称threading.currentThead().name
print('主线程开启',threading.currentThread().name)
#创建一个线程
"""
target =None :线程要执行的目标函数
name=None:创建线程时指定线程的名称
args=():为目标函数,传递参数,(tuple元祖类型)
"""
thread_sub1 = Thread(target=download_image,
name='下载线程',
args=('http://img2.imgtn.bdimg.com/it/u=3908481601,2728201109&fm=26&gp=0.jpg',1)
)
thread_sub2 = Thread(target=read_data,
name='下载线程',
)
#是否开启守护进程(开启线程之前设置)
# daemon:False,在主线程结束的时候,会检测子线程任务是否结束,如果子线程中任务没有结束,则会等待子线程正常结束任务
# daemon:True 在主线程结束的时候,会检测子线程任务是否结束,如果子线程中任务没有结束,则会让子线程跟随主线程一起结束
# thread_sub1.daemon = True
thread_sub1.start()
#join():阻塞,等待子线程中的任务执行完毕后,在再回到主线程中继续执行
thread_sub1.join()
thread_sub2.start()
thread_sub2.join()
print('主线程结束',threading.current_thread().name)
网友评论