多线程的创建和使用

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)

你可能感兴趣的:(多线程的创建和使用)