很多时候我们需要让异步里面的东西执行完之后再去执行我们想要执行的东西,这样可以实时的监控到执行的位置,避免线程不安全,我们来看看这货>>>dispatch_semaphore_t.
dispatch_semaphore_t这个就不再解释了>>>信号.相当于我给信号你,你才能做什么事情,否则你就等着.
看一个线程不安全的例子:
代码 输出1 输出2我们会发现先输出的是33333333333333333,然后再输出111111111和22222222222,因为AFNetWorking是异步的,输出和网络有关.然后我们用这个dispatch_semaphore_t来试下.
顺序执行可以看到,执行的顺序永远都是111111>>>22222>>>3333333,这就是我们想要的结果
网友评论