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
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
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