当前位置: 首页 > 知识库问答 >
问题:

python中带线程的全局变量

华君浩
2023-03-14
import threading
import time

def loop():
    global bbcount
    bbcount = 0
    while True:
        bbcount += 1
        print "This is a Loop"
        time.sleep(1)

if __name__ == '__main__':

    t = threading.Thread(target=loop)
    t.start()
    while True:
        user_input = raw_input("Please enter a value:")
        print "User input: " + user_input
        print "Current count: " + str(bbcount)
    t.join()

共有1个答案

刘修能
2023-03-14

因为吉尔,这个程序将运行预期。

有关GIL的更多信息:https://en.wikipedia.org/wiki/global_interpreter_lock

因此全局变量将在短时间内进行线程安全编辑。

 类似资料:
  • 问题内容: 如何与线程共享全局变量? 我的Python代码示例是: 我不知道如何让两个线程共享一个变量。 问题答案: 您只需要在中声明为global ,这样就无需修改该函数本地的。 在中,您不需要执行任何特殊操作,只要您不尝试修改的值(这将创建一个局部变量以遮盖全局变量;请在需要时使用)>

  • 问题内容: 我正在尝试使用exec运行一段python代码。 这导致以下输出 但是,如果我将代码更改为此- 然后工作正常-提供以下输出- 显然,A存在并且可以访问-在第一段代码中出了什么问题?我正在使用2.6.5,欢呼声, 科林 更新1 如果我检查类中的locals()- 然后很明显,locals()在两个地方都不相同- 但是,如果我这样做,就没有问题- 更新2 好的,所以这里的文档-http:

  • 问题内容: 此代码为何起作用: 但这给出了“分配前引用的局部变量’var’”错误: 问题答案: 因为在第一个代码中,您已经创建了一个局部变量并使用了它的值,而在第二个代码中,您正在使用局部变量,而没有对其进行定义。 因此,如果要使第二个功能正常工作,则需要声明:- 在使用该功能之前。 而在此代码中: 更新 :- 但是,按照@Tim的注释,您不应在函数内部使用变量。最好在使用变量之前先定义变量,然后

  • 问题内容: 我了解Python中局部变量和全局变量的概念,但是我只是有一个问题,为什么下面的代码中会出现错误?Python逐行执行代码,因此在读取第5行之前,它不知道a是局部变量。Python尝试执行第5行后,会回退一行并将其标记为错误吗? 问题答案: 设置和测试 为了分析您的问题,让我们创建两个独立的测试函数来复制您的问题: 版画。因此,调用此函数不是问题,而是在下一个函数上: 我们收到一个错误

  • 问题内容: 我正在Django中寻找一种简单但推荐的方式,将变量仅存储在内存中。当Apache重新启动或Django开发服务器重新启动时,该变量重置为0。更具体地说,我想计算在每个模型实例(数据库记录)上执行特定操作的次数,但是出于性能原因,我不这样做想要将这些计数存储在数据库中。我不在乎服务器重启后计数是否消失。但是,只要服务器启动,我就希望这些计数在Django Shell和Web界面之间保持

  • 本文向大家介绍Python教程之全局变量用法,包括了Python教程之全局变量用法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今天有同事问一个关于全局变量的问题,才发现其中原来还有门道。 程序大致是这样的: 运行结果如下: UnboundLocalError: