中断函数的执行



我找到了一篇很好的文章来解释可重入性问题,但我很想知道在单线程环境中函数中断的各种方式。

final class Radiator {

private(set) var modelName: String
private(set) var serialNumber: Double

init(modelName: String, serialNumber: Double) {
self.modelName = modelName
self.serialNumber = serialNumber
}

func update(modelName: String, serialNumber: Double) {
self.modelName = modelName
self.serialNumber = serialNumber
}
}

如果我们在内存中创建了一个具有一些初始值的上述实例,然后稍后调用更新函数,那么如何在执行过程中中断上述更新函数,从而使型号名称接收到新值,但序列号没有?

另一个例子可能是一个函数,它打开一个文件,操纵一个文件然后关闭该文件。中断可能无法关闭文件。这在单线程环境中是如何实现的?

我感谢@joakim Danielson在评论中提供的澄清。

在此上下文中的中断并不一定意味着执行的调用被停止。相反,一个额外的调用在上一个完成之前已开始。

最新更新