dispatch_once 引起的死锁

今天遇到一个使用dispatch_once引起的问题,在shareInstance的dispatch_once里初始化的同时也调用了别的类的dispatch_once方法初始化,而在别的dispatch_once方法又调用本类的dispatch_once,莫名导致程序死锁。

在google后得知在初始化未完成时相互的调用会造成死锁,也就是A->B->C->A的一个调用过程,,会导致整体链表无限增长,造成永久性死锁。

开始学习swift

        好几个月没写博客了,一部分原因是因为前阵子工作很忙,还有是因为房子的原因,现在房子问题基本搞定,也算是少了一份烦心事。
        最主要的原因是自己变懒了,不想多抽出点时间去学新的东西。现在工作不忙,自己坚持每月更新一两篇新东西。
        计划这一年内学习一门新的计算机语言,想想这都到十月了还没有开始学,心里也狠狠地鄙视了一下自己。
于是选定了swift语言来学习,作为一个ios程序员,一真用oc开发,到现在也还没有学习swift,不知道这算不算一件打脸的事情,总之现在开始学习了。
        由于自己熟悉ios开发,也熟悉lua等一些脚本语言,所以swift学习起来并不困难。但swift看似一个脚本语言,但其实不然,swift是一个强类型和编译型语言,它之所以能够进行类型判断,是因为它是和oc类型的运行时机制吧。但swift还上有很多脚本语言的特点,如闭包等等,这将是一个很强大特点。
一些粗浅的想法,往后写些更全面和深入一点的学习心得。