tubao5508
tubao5508
采纳率0%
2018-12-29 12:08

怎样实现python的多线程监听,当子线程运行时暂停主线程?

5

比如我的主线程是持续执行的,同时有一个thread1和thread2分别监听两个不同的信号
当thread1接受到信号时执行对应程序,但同时暂停主线程的执行
一旦thread1程序结束,主线程继续运行,两个子线程也继续监听?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_36533328 半角句号 3年前

    子线程无法直接暂停主线程,只能是通过消息告诉主线程暂停,主线程接到消息后主动暂停,然后子线程通知主线程恢复执行。
    可以借助Queue
    Queue


    main thread 往queue中put一个元素,然后在可以暂停的地方检测queue.empty() 是否为空,如果为空就 queue.join() 等待thread1执行完成。
    thread1 在监听到信号后从queue中get一个元素,告诉main thread暂停,执行完后queue.task_done() 通知main thread从join()继续执行。

    点赞 评论 复制链接分享
  • weixin_43128028 人马座α星 3年前

    是否可以通过join的形式。就是在start你的子线程后加入join操作。这样只有当你的子线程运行结束后才会接着运行你下面的主线程

    点赞 评论 复制链接分享

相关推荐