1. 程式人生 > >pthread_cleanup_push vs Autorelease VS 異常處理

pthread_cleanup_push vs Autorelease VS 異常處理

html 根據 www. div obj 正是 ext 原理 消息

http://www.cnblogs.com/feng9exe/p/7239552.html

objc_autoreleasePoolPush的返回值正是這個哨兵對象的地址,被objc_autoreleasePoolPop(哨兵對象)作為入參,於是:

  1. 根據傳入的哨兵對象地址找到哨兵對象所處的page
  2. 在當前page中,將晚於哨兵對象插入的所有autorelease對象都發送一次- release消息,並向回移動next指針到正確位置
  3. 補充2:從最新加入的對象一直向前清理,可以向前跨越若幹個page,直到哨兵所在的page

假設這些都有線程持有,都可以解釋通

和函數調用棧的原理類似。

pthread_cleanup_push vs Autorelease VS 異常處理