首页 > 解决方案 > 我想用 self 参数线程化一个函数

问题描述

我想线程化这个函数,但不知道当 self 参数到位时如何线程化。任何人都知道我该怎么做。我将不胜感激

这是功能

def processinformation(self):
    app = App.get_running_app()
    session = requests.Session()
    self.notif_stream = session.get("**********************************" + app.displayname + "/.json", stream=True)
    for line in self.notif_stream.iter_lines():
        if line:
            print(json.loads(line))
            newline = ast.literal_eval(line.decode('utf-8'))
            for key, thevalue in newline.items():
                for key, value in thevalue.items():
                    self.notif = session.get("**********************************" + app.displayname + "/" + key + "/" + "notification" + "/.json")                          
                    self.notificationslist.adapter.data.extend([value])          

标签: pythonmultithreadingpython-multithreading

解决方案


好的,我通常没有太多理由编写多线程 Python 程序,但这似乎可行:

#!/usr/bin/env python3

import threading

class MyTarget:
    def mymethod(self, arg1, arg2):
        print(f"MyTarget, {arg1} {arg2}")

if __name__ == '__main__':
    my_target = MyTarget()
    t = threading.Thread(target=my_target.mymethod, args=("X", "Y"))
    t.start()
    # NOTE: In any _real_ program, the main thread would do
    #  something else, concurrently with the new thread.
    t.join()

推荐阅读