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

 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

相关推荐

  1. python获取线名称传递参数数据共享

    2024-01-20 07:10:01       50 阅读
  2. SpringMVC之获取请求参数域对象共享数据

    2024-01-20 07:10:01       49 阅读
  3. python线多进程内存共享方式

    2024-01-20 07:10:01       53 阅读
  4. ThreadLocal+TaskDecorator实现父子线 参数传递

    2024-01-20 07:10:01       61 阅读
  5. Python使用队列在两个线传递数据

    2024-01-20 07:10:01       21 阅读
  6. 记录一次关于线池任务编排共享数据的尝试

    2024-01-20 07:10:01       38 阅读
  7. 【6】c++多线技术之线参数传递

    2024-01-20 07:10:01       42 阅读
  8. 线局部变量共享

    2024-01-20 07:10:01       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 07:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 07:10:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 07:10:01       82 阅读
  4. Python语言-面向对象

    2024-01-20 07:10:01       91 阅读

热门阅读

  1. npm install 太慢?解决方法

    2024-01-20 07:10:01       58 阅读
  2. React与Vue:前端框架的比较

    2024-01-20 07:10:01       54 阅读
  3. React16源码: React中的reconcileChildren的源码实现

    2024-01-20 07:10:01       39 阅读
  4. 每日coding

    2024-01-20 07:10:01       49 阅读
  5. spark的jdbc接口,类似于hiveserver2

    2024-01-20 07:10:01       51 阅读
  6. JVM介绍

    JVM介绍

    2024-01-20 07:10:01      46 阅读
  7. 【LeetCode】哈希表精选5题

    2024-01-20 07:10:01       59 阅读
  8. 1.19 力扣中等图论

    2024-01-20 07:10:01       60 阅读
  9. JVM的即时编译(JIT)优化原理:加速程序的执行

    2024-01-20 07:10:01       50 阅读