对象释放与线程的关系

一个对象从创建到释放,不管是OC还是Swift,都有引用计数来管理,在引用计数为0时,程序会在一个恰当的时机把这个对象释放。

“恰当的时机”是 线程Runloop的某个环节,但问题是,会在哪个线程里释放呢?

经测试,无论是在OC中还是Swift中,

dealloc都是在最后一次释放的线程中执行。

就是说,一个对象,无论它在哪个线程总创建或者被使用,它只在最后一次release它的那个线程中执行dealloc/deinit操作。

你可能感兴趣的:(对象释放与线程的关系)