#author("2023-10-09T20:03:43+08:00","default:Admin","Admin") #author("2023-11-10T19:26:33+08:00","default:Admin","Admin") [[Python]] &color(red){※This article is based on Python 3.7.3}; #contents * 指定函数的方式 [#b7b0822d] + 同样是指定函数传入参数的形式。生成线程对象后调用 start()方法启动。 + 但是此时发现主线程中打印的话在最后面执行了,其实是因为创建线程的开销极小,几乎是一瞬间就可以 创建,也就是执行的速度很快。 例 #codeprettify{{ from threading import Thread def run(username): print(f'{username} is running') if __name__ == '__main__': # 不需要在 __main__ 下写,可以保持习惯写下。 t = Thread(target=run, args=('1111', )) t.start() print('主线程') # 输出结果 1111 is running 主线程 }} * 继承类的方法 [#e297c369] 同样的继承 Thread类,并定义 run() 方法,该方法也会自动被 target 指定执行。并通过__init__ 来传参 例 #codeprettify{{ from threading import Thread class MyThread(Thread): def __init__(self, name): super().__init__() self.name = name def run(self): print(f'{self.name} is running') if __name__ == '__main__': # 可以不写。 t = MyThread('11111') t.start() # 输出结果 11111 is running }} * 进程等待 [#w66382f6] join #codeprettify{{ import threading def demo(): print('子线程开始运行') # 模拟子线程执行时间 time.sleep(2) print('子线程结束运行') t = threading.Thread(target=demo) t.start() t.join() print('主线程结束') }} #hr(); コメント: #comment_kcaptcha