Python 如何在线程外更新全局变量?

Python 如何在线程外更新全局变量?,python,multithreading,Python,Multithreading,我有一个全局变量,用于共享flask socketio服务器中的所有功能,还有一个线程用于启动另一个功能,以发送连接到flask socketio服务器的通知。线程从运行开始,全局变量被传递到。问题是,当我在线程外部更改全局变量时,它在线程中不会更新 from flask import Flask, request from flask_socketio import SocketIO, emit from flask_cors import CORS, cross_or

我有一个全局变量,用于共享flask socketio服务器中的所有功能,还有一个线程用于启动另一个功能,以发送连接到flask socketio服务器的通知。线程从运行开始,全局变量被传递到。问题是,当我在线程外部更改全局变量时,它在线程中不会更新

    from flask import Flask, request
    from flask_socketio import SocketIO, emit
    from flask_cors import CORS, cross_origin
    
    from generate_audio import *
    from manage_time import receive_data, clock
    from manage_audio import set_audio
    import threading
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'secret!'
    socketio = SocketIO(app, cors_allowed_origins="*")
    CORS(app)
    
    a = 0
    
    @app.route("/demo", methods=["POST"])
    @cross_origin(origin='localhost',headers=['Content-Type','Authorization'])
    def receive_request():
        global a
        a += 1
        return "Done"

   def clock(a):
      while True:
         print(a)
    
    if __name__ == "__main__":
        global a
        threading.Thread(target=clock, args=(a,)).start()
        socketio.run(app, port=5000, debug=True, host="0.0.0.0")

如何更新线程内的值?它始终等于0,我希望每次向“/demo”发送请求时它都会增加。

您可以修改如下全局变量:

global a
a += 1
我在“/demo”中更改了一个值,但在线程目标时钟函数a中没有更改df clock():虽然为True,但全局a打印(a)可能有效