Python考试题--第67道题目--怎么创建和操作在线程内部用的实例对象--2022年04月22日

原创
小哥 3年前 (2022-10-29) 阅读数 5 #大杂烩

目录

1.创建全局对象:

1,都会在这条线上。local类实例化---->对象

2,则递增对象的值

3,测试多个线程之间的全局变量是否共享

2.示例代码演示:

3.摘要:


1.创建全局对象:

1,都会在这条线上。local类实例化---->对象

2,则递增对象的值

3,测试多个线程之间的全局变量是否共享

2.示例代码演示:

import threading
import time

a = threading.local() # 实例化local类-->变成了一个物体a

def worker():
    a.x = 0
    for i in range(20):
        time.sleep(0.01)
        a.x += 1
    print(threading.current_thread(), a.x)

for i in range(10): # 调用10个线程
    threading.Thread(target=worker).start()

3.摘要:

1、local类用于创建全局对象,但该对象只能在线程内部使用,即全局对象用于一个线程,不能在多个线程之间共享。

2,每个线程都是a.x该变量的值将增加20,不再积累。因此,多个线程不共享全局变量。

3、 current_thread()是Python中线程模块的内置方法。 它用于返回当前Thread对象,该对象对应于调用方的控件线程。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除