1.获取线程名称和传递参数
import threading
import time
def run(i):
    print('开启线程',i,threading.current_thread().name)
    # 等待2秒
    time.sleep(2)
# 创建线程并起名,传递参数,这个位置使用和进程一样
thr1 = threading.Thread(target=run,args=(1,),name='lucky-1')
thr2 = threading.Thread(target=run,args=(2,),name='lucky-2')
# print(thr)
thr1.start()
thr2.start()
thr1.join()
thr2.join()
print('开启线程',threading.current_thread().name)
print('over')
'''
每个进程会有一个默认的主线程
在每个进程内开启的线程为子线程
MainThread
'''运行结果:
开启线程 1 lucky-1
 开启线程 2 lucky-2
 开启线程 MainThread
 over
2.数据共享
import threading
name = 'longfei'
def run():
    age = 18
    # 声名name是全局变量
    global name
    name = '赵露思'
    print(f'我叫{name},今年{age}岁!')
thr = threading.Thread(target=run)
thr.start()
thr.join()
print('我是外部获取数据',name)
print("over")
运行结果:
我叫赵露思,今年18岁!
 我是外部获取数据 赵露思
 over
3.线程数据共享2
import threading
import time
name = 'longfei'
def run():
    age = 18
    # 阻塞,等待2秒
    time.sleep(2)
    # 声名name是全局变量
    global name
    name = '赵露思'
    print(f'我叫{name},今年{age}岁!',threading.current_thread().name)
def run1():
    age = 18
    # # 声名name是全局变量
    # global name
    # name = '赵露思'
    print(f'我叫{name},今年{age}岁!',threading.current_thread().name)
thr1 = threading.Thread(target=run,name='线程1')
thr2 = threading.Thread(target=run1,name='线程2')
thr1.start()
thr2.start()
thr1.join()
thr2.join()
print('我是外部获取数据',name)
print("over")
运行结果:
我叫longfei,今年18岁! 线程2
 我叫赵露思,今年18岁! 线程1
 我是外部获取数据 赵露思
 over










