肥学 2021-07-15 15:21 采纳率: 83.3%
浏览 34
已采纳

python多线程设置traget的问题

import threading
import time
def thread_run():
    print("frist")
    for i in range(10):
        time.sleep(1)
    print("frist finish")


def main():
    add_thread=threading.Thread(target=thread_run)#target后面换成tread_run()加括号了为什么会不一样
    add_thread.start()
    print("second")


if __name__ == '__main__':
    main()
  • 写回答

3条回答 默认 最新

  • 雷学委 Python领域优质创作者 2021-07-15 23:33
    关注

    这个问题还是比较基础啊,它的重点是Thread构造函数中需要给的target参数要求是一个callable对象。
    在Thread内部有一个run函数,运行target指向的方法。这个才是重点。
    什么时候可以给个加括弧的,如果thread_run内部改造为类似下面的callable_generator返回的是一个函数, 如下代码。那么你可以传入target=callable_generator(),否则thread_run()返回值是None。

    def callable_generator():
        print("execute immediately")
        def run():
            time.sleep(1)
            print("call in run")
        return run
    

    你看看这个吧:
    https://docs.python.org/3/library/threading.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月16日
  • 创建了问题 7月15日

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建