gpt4 book ai didi

pthreads - 何时使用 pthread_cancel 而不是 pthread_kill?

转载 作者:行者123 更新时间:2023-12-03 10:39:58 25 4
gpt4 key购买 nike

什么时候用pthread_cancel而不是 pthread_kill ?

最佳答案

我不会使用这两个,但这只是个人喜好。

两者中, pthread_cancel 是终止线程最安全的方法,因为该线程只有在使用 pthread_setcancelstate() 将其可取消性状态设置为 true 时才会受到影响。 .

换句话说,它不应该在以可能导致死锁的方式持有资源的情况下消失。 pthread_kill() call 向特定线程发送信号,这是一种异步影响线程的方法,而不是取消它。

我的大多数线程都倾向于循环工作,并定期检查标志以查看它们是否应该退出。这主要是因为我是在一个世界长大的pthread_kill()很危险,pthread_cancel()不存在。

我赞同每个线程应该完全控制自己的资源的理论,包括它的执行生命周期。我一直发现这是避免僵局的最佳方法。为此,我简单地使用互斥体在线程之间进行通信(我很少发现需要真正的异步通信)和用于终止的标志变量。

关于pthreads - 何时使用 pthread_cancel 而不是 pthread_kill?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3438536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com