python获取线程名称和传递参数,数据共享

发布时间:2024年01月19日

?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

文章来源:https://blog.csdn.net/jolinoy/article/details/135684467
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。