Leo*_*ica 2 macos pthreads darwin grand-central-dispatch mach
我正在尝试使用 向特定线程发送信号pthread_kill。我用来pthread_from_mach_thread_np()获取句柄,然后用来pthread_kill发送信号。
这在我的其他测试中效果很好,但现在我发现当尝试向 GCD 内部创建的线程发出信号时,我从pthread_kill.
生成该线程的 GCD API:
\n\ndispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{ ... });\nRun Code Online (Sandbox Code Playgroud)\n\n发生这种情况有什么原因吗?
\n\n\xe2\x80\x94-
\n\n为了添加一些进一步的信息,我并没有试图杀死线程。pthread_kill()是向线程发送信号的标准 POSIX API。如果安装了信号处理程序,则 thread\xe2\x80\x99s 上下文将通过蹦床切换到处理程序。
虽然我尝试使用信号处理程序实现的目标可以通过更好的方式实现,但这在这里不是问题。即使纯粹出于学术原因,我也想了解内部发生的情况。
\n| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |