我目前正在线程内部运行flask-socketio。在特定的socketio事件中,我想更改主线程中全局对象的状态,即执行可能会更改其实例变量值的函数
在我的实际程序中,“ self.params”是chromedrivers的列表。发出信号时,将删除或添加驱动程序。这有什么区别吗? Chromedriver是不可拾取的对象。
这是一个烧瓶套接字代码,它是一个简化示例:
from gevent import get_hub
get_hub().NOT_ERROR += (KeyboardInterrupt,)
from flask import Flask
from flask_socketio import SocketIO, emit
import threading
app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecret'
socketio = SocketIO(app, cors_allowed_origins="*")
class SomeObj():
def __init__(self, param):
self.param = param
def query(self):
self.param += 1
return
global_obj = SomeObj(0)
@socketio.on('msg')
def handle_msg():
global_obj.query()
def start():
def run():
socketio.run(app, port=5005)
SocketIOThread = threading.Thread(target=run)
SocketIOThread.daemon = True
SocketIOThread.start()
if __name__ == '__main__':
start()
while True:
a = input()
if a == '`':
break
else:
print(global_obj.param)
我该如何实现?每次我只有0。