我试图理解 C++ 中的取消点是什么。我已经阅读了 man page 和 What are pthread cancellation points used for,但在某些方面仍感到困惑。例如,我正在使用文件的 write() 函数,显然这是一个取消点。因此,当我调用 write() 时,我可以看到另一个线程可能会开始处理,这通常发生在写入缓冲区已满并需要在 write() 能够成功/完成之前被清空的情况下。
但在我的看法中,这不是线程的取消,而只是暂时的阻塞/挂起,并且没有任何线程“清理”要做...
所以我的问题是,取消点与“阻塞点”有关系吗?它们真的是相同的东西,还是有一些区别?任何有关取消点的明确的“顶层”描述都将非常有用。