- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我读到 WinAPI 中的 TerminateThread()
使用起来很危险。
在 Linux 中使用 pthread_kill()
也有危险吗?
编辑:抱歉,我指的是 pthread_kill()
而不是 pthread_exit()
。
最佳答案
引用 Humphrey Appleby 爵士的话,答案是“是,也不是”。
就其本身而言,调用 pthread_exit() 并不危险,并且会在您的线程退出其方法时隐式调用。但是,如果您手动调用它,则会有一些“陷阱”。
如果您注意上述事项(即,如果您在调用 pthread_exit 后注意不要引用有关线程的任何内容),那么手动调用 call 是安全的。但是,如果您使用 C++ 而不是 C,我强烈建议您使用 std::thread 类而不是手动执行。它更易于阅读,涉及的代码更少,并确保您不会破坏上述任何内容。
有关更多信息,请键入“man pthread_exit”,它基本上会告诉您以上内容。
关于c - 使用 pthread_kill() 有危险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50215589/
我想确定一个特定的线程是否“存在”。 pthread_kill()似乎适合这项任务,至少根据其 man page . If sig is 0, then no signal is sent, but
问题非常简单:我的应用程序在 32 位架构上完美运行,但在 64 位架构上运行。我遇到段错误。我猜原因是执行了 pthread_kill() 调用。这是可能的还是我的假设是错误的? 最佳答案 这里有一
为什么这个线程在我杀了它之后还继续执行?? pthread_t pid; pthread_create(&pid, NULL, (func)countdown, NULL); pthread_kill
我正在使用 int s=pthread_kill(thread_arr[t], 9); 将 SIGKILL 信号发送到位于 thread_arr t 位置的线程,而不是杀死这个确切的线程我的整个程序都
GDB 告诉我 pthread_kill 导致我的程序出现段错误。基本上,我使用 pthread_kill 来检查线程是否处于事件状态或未提供其 ID。 我一直在网上搜索,发现可能是 pthread_
我有以下崩溃报告,但我无法找出此崩溃的原因。这种崩溃经常出现,但每次的模式都不同。非常感谢! Thread 0 Crashed: 0 libsystem_kernel.dylib 0x00000001
我读到 WinAPI 中的 TerminateThread() 使用起来很危险。 在 Linux 中使用 pthread_kill() 也有危险吗? 编辑:抱歉,我指的是 pthread_kill()
信号可以在任何线程或主程序本身中接收。我从主程序创建了一个辅助线程。所以我的程序中有两个线程 1. 主线程(进程本身) 2. 辅助线程。我只希望每当信号到达我的辅助线程时,它应该向我的主线程(程序)发
我对 pthread_kill() 行为有疑问。 这是我正在尝试的一个小代码: void my_handler1(int sig) { printf("my_handle1: Got sign
什么时候用pthread_cancel而不是 pthread_kill ? 最佳答案 我不会使用这两个,但这只是个人喜好。 两者中, pthread_cancel 是终止线程最安全的方法,因为该线程只
我正在尝试使用pthread_kill向特定线程发送信号。我使用 pthread_from_mach_thread_np() 获取句柄,然后使用 pthread_kill 发送信号。 这在我的其他测试
我正在尝试使用pthread_kill向特定线程发送信号。我使用 pthread_from_mach_thread_np() 获取句柄,然后使用 pthread_kill 发送信号。 这在我的其他测试
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 5 年前。 Improve
我想使用 pthread_kill api 从主线程向子线程发送信号 (SIGUSR1),但它给出了段错误。以前我使用 2.6.20 内核版本和 gcc 4.2.1 eglbc 2.5 multili
如何使用 C++ 线程模拟 pthread_kill() 函数?我早些时候问了一个关于这个的问题,但没有得到回应。 thread::native_handle() 函数在这里有帮助吗? 最佳答案 所以
我正在制作一个小项目,该项目将被合并到更大的项目中。基本上它所做的是通过将线程添加到主结构来跟踪创建的线程,主结构跟踪线程的作用(其主要功能)及其 pthread_t id。另一个结构跟踪要传递给函数
OpenGroup Unix 规范 claims pthread_kill() 是异步信号安全的。但是 Linux man 7 signal没有在相关部分列出此功能。 那么,在 Linux 上的信号处
此请求与 PThreads 以及使用条件或信号来暂停/恢复连续循环工作线程有关。 不久前,我遇到了这个问题: https://stackoverflow.com/a/23945651/6421961
我想知道我从 Crashlytics 收到的以下堆栈跟踪中是否有任何我应该关注的内容: EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x000000007becbeb
之前我问过question关于如何终止因 I/O 而阻塞的线程。考虑到一些优点,我使用了 pthread_kill() 而不是 pthread_cancel() 或写入管道。 我已经实现了使用 pth
我是一名优秀的程序员,十分优秀!