1.获取线程名称和传递参数
import threading
import timedef 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 threadingname = 'longfei'def run():age = 18# 声名name是全局变量global namename = '赵露思'print(f'我叫{name},今年{age}岁!')thr = threading.Thread(target=run)
thr.start()
thr.join()
print('我是外部获取数据',name)
print("over")
运行结果:
我叫赵露思,今年18岁!
我是外部获取数据 赵露思
over
3.线程数据共享2
import threading
import timename = 'longfei'def run():age = 18# 阻塞,等待2秒time.sleep(2)# 声名name是全局变量global namename = '赵露思'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