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