多线程:线程安全

1.单例模式

class Singleton: NSObject {

    

    class func shareSingle() -> Singleton {

        

        struct temps{

            static var instance: Singleton?

            static var myT: dispatch_once_t = 0

        }

        

//保证方法只能运行一次(临界区)

        dispatch_once(&temps.myT, { () -> Void in

            temps.instance = Singleton()

        })

        

        return temps.instance!

    }

    

}


2.读者写者问题

//新建自定义线程

        var myQueue = dispatch_queue_create("snow.thread", DISPATCH_QUEUE_CONCURRENT)

        //阻塞其他线程,避免读者写者问题(必须使用自定义线程)

        dispatch_barrier_async(myQueue, { () -> Void in

            //数据操作,比如对数组添加数据

        })


发布了53 篇原创文章 · 获赞 2 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章