Python线程是否可能导致其父/主进程执行代码?

BigglesZX

背景:我编写了一个简单的RUMPS / PyObjC应用程序,该应用程序在各个地方发出HTTP请求并弹出系统警报对话框。大多数HTTP请求都带有线程,以避免阻塞主执行。

查询:在PyObjC中,您不应该在后台线程中创建警报对话框(只有主进程可以安全地执行此操作),因此我想知道是否存在一种明智的模式可以用来允许子线程与父线程进行通信通知它应该创建一个警报对话框。

举个例子:

  1. 主程序popAlert()定义了一个方法,该方法调用PyObjC函数创建警报对话框。
  2. 主程序启动一个线程,该线程执行HTTP请求,并在完成后希望弹出警报。
  3. 子线程,当HTTP请求完成时,以某种方式调用主进程来触发popAlert()

目前,我有一个子线程创建警报对话框,这在PyObjC中显然是不安全的。

我对线程/多处理还很陌生,到目前为止,我所看到的线程间通信示例似乎主要涉及子线程从类似队列的机制接收消息,而父线程可以选择阻塞直到队列为空。我还没有看到任何迹象表明父级是否有可能以我所描述的方式响应子线程的消息。

如果这样做需要重新架构,那也很好–我不喜欢任何特定的多处理方法。

任何建议将不胜感激。如果可以提供更多详细信息,请告诉我。非常感谢您的阅读。

损害

看看pyobjc_performSelectorOnMainThread这可能是您所需要的。这是一个人为的用法示例:

  class MyClass (NSObject):

     def divideByZero_(self, arg):
          return arg/0

     def doit(self):
         try:
             result = self.performSelectorOnMainThread_withObject_(
                  'divideByZero:', 55)
             print result

         except:
             print "Division failed"

您可以在此PyObjC示例应用程序中找到更具体地使用它的信息尤其要检查WSTConnectionWindowControllerClass.py。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript / Node中的隐藏线程永远不会执行用户代码:是否可能,如果这样,是否会导致出现竞争状态的不可思议的可能性?

来自分类Dev

主进程的工作进程运行代码

来自分类Dev

线程进程在执行完整代码之前退出

来自分类Dev

线程更新单独的进程,同时不滞后于主进程

来自分类Dev

dagster主进程的工作目录与调度程序进程是否不同?

来自分类Dev

cron作业是否会阻塞主进程,否则nodejs将创建一个工作程序来执行cron任务

来自分类Dev

主进程退出后如何保持线程存活?

来自分类Dev

无法生成蓝牙主进程:无法执行:权限被拒绝

来自分类Dev

无法生成蓝牙主进程:无法执行:权限被拒绝

来自分类Dev

将连接对象从进程传递到python中的主进程

来自分类Dev

当线程/进程处于睡眠状态时,睡眠线程或进程的指令是否继续执行?

来自分类Dev

是否可以继承 multiprocessing.Process 与主进程通信

来自分类Dev

Python:主进程终止时会发生什么。

来自分类Dev

是否应在非EDT线程上执行非SWING代码?

来自分类Dev

是否可以从UI停止代码的单线程执行?

来自分类Dev

启动另一个线程后,主进程被冻结

来自分类Dev

检查进程是否正在运行的脚本,如果进程未运行,则执行代码行

来自分类Dev

检查进程是否正在运行的脚本,如果进程未运行,则执行代码行

来自分类Dev

为什么不执行备份相关的进程可能会导致应用程序的onCreate?

来自分类Dev

如果父进程结束,子进程的祖父进程是否成为其父进程

来自分类Dev

“无法产生mysql主进程:无法执行:没有这样的文件或目录”

来自分类常见问题

是否使用-m选项执行Python代码

来自分类Dev

python代码是否按顺序执行

来自分类Dev

Python线程/守护进程

来自分类Dev

Python:Popen-等待主进程,但不等待后台子进程

来自分类Dev

主进程挂起子进程上的Python多处理与time.sleep

来自分类Dev

istio中的sidecar和主进程之间的通信是否已加密?

来自分类Dev

“ fork()”生成的子进程是否可以具有比其父进程小的进程ID?

来自分类Dev

一个进程中的多个线程是否与一个线程中的一个进程共享相同的执行时间?

Related 相关文章

  1. 1

    Javascript / Node中的隐藏线程永远不会执行用户代码:是否可能,如果这样,是否会导致出现竞争状态的不可思议的可能性?

  2. 2

    主进程的工作进程运行代码

  3. 3

    线程进程在执行完整代码之前退出

  4. 4

    线程更新单独的进程,同时不滞后于主进程

  5. 5

    dagster主进程的工作目录与调度程序进程是否不同?

  6. 6

    cron作业是否会阻塞主进程,否则nodejs将创建一个工作程序来执行cron任务

  7. 7

    主进程退出后如何保持线程存活?

  8. 8

    无法生成蓝牙主进程:无法执行:权限被拒绝

  9. 9

    无法生成蓝牙主进程:无法执行:权限被拒绝

  10. 10

    将连接对象从进程传递到python中的主进程

  11. 11

    当线程/进程处于睡眠状态时,睡眠线程或进程的指令是否继续执行?

  12. 12

    是否可以继承 multiprocessing.Process 与主进程通信

  13. 13

    Python:主进程终止时会发生什么。

  14. 14

    是否应在非EDT线程上执行非SWING代码?

  15. 15

    是否可以从UI停止代码的单线程执行?

  16. 16

    启动另一个线程后,主进程被冻结

  17. 17

    检查进程是否正在运行的脚本,如果进程未运行,则执行代码行

  18. 18

    检查进程是否正在运行的脚本,如果进程未运行,则执行代码行

  19. 19

    为什么不执行备份相关的进程可能会导致应用程序的onCreate?

  20. 20

    如果父进程结束,子进程的祖父进程是否成为其父进程

  21. 21

    “无法产生mysql主进程:无法执行:没有这样的文件或目录”

  22. 22

    是否使用-m选项执行Python代码

  23. 23

    python代码是否按顺序执行

  24. 24

    Python线程/守护进程

  25. 25

    Python:Popen-等待主进程,但不等待后台子进程

  26. 26

    主进程挂起子进程上的Python多处理与time.sleep

  27. 27

    istio中的sidecar和主进程之间的通信是否已加密?

  28. 28

    “ fork()”生成的子进程是否可以具有比其父进程小的进程ID?

  29. 29

    一个进程中的多个线程是否与一个线程中的一个进程共享相同的执行时间?

热门标签

归档