为了账号安全,请及时绑定邮箱和手机立即绑定

Python 线程处理 - join() - 多线程

Python 线程处理 - join() - 多线程

缥缈止盈 2021-06-07 13:13:08
我正在编写一个脚本,其中执行简单任务的线程每 3 分钟启动一次。我正在使用线程和调度模块。由于多线程的性质,线程都使用相同的资源。我需要实现什么?创建新线程时,我想检查是否有任何正在运行的线程;如果有,则等到正在运行的线程终止,然后启动新线程。我试过什么? import threadingdef run_threaded(job_fn):    job_thread = threading.Thread(target=job_fn)    bot.logger.info(" --------------No of active threads : "+threading.activeCount())    job_thread.start()    job_thread.join()    bot.logger.info(" --------------No of active threads : " + threading.activeCount())schedule.every(3).minutes.do(run_threaded, job)while True:    schedule.run_pending()注意:在上面的示例中,每个 job_thread 需要 5 分钟才能完成。因此,它每 6 分钟创建 1 个线程。据我了解,job_thread.join()行正在加入主线程(与任何其他活动线程)。尽管调度被阻塞,因此在前一个线程完成之前不能实例化任何其他线程。那是对的吗 ?如果是,这是这样做的好习惯吗?并且作为记录......脚本可以在运行线程时执行其他代码块吗?或者它可以在前一个线程完成之前实例化其他线程,如果他们要执行其他作业,比如说job2?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信