多线程同步和异步的区别?IOS中如何实现多线程的同步?
异步:可以同时执行多条线程,实际上同样也是按照先进先出的顺序进行,但是由于CPU处理速度较快,就好像是多条线程同时进行,前面的线程不会阻塞后面线程的进行
同步:是指一个线程要等待上一个线程执行完之后才开始执行当前的线程,上厕所
按照先进先出的顺序执行线程,一次只能执行一条线程,一个线程要等待上一个线程执行完之后才开始执行当前的线程,前面的线程会阻塞后面线程的进行
关键字@synchronized()
同步多线程
dispatch_queue_t q1 = dispatch_queue_create()
异步多线程
dispatch_queue_t queue = dispatch_get_global_queue;
dispatch_async(queue,{
//do something here
dispatch_async(dispatch_get_mainQueue,{
//refresh UI
})
})
简述什么地方会用到多线程?谈谈何为线程同步,如何实现的?分线程回调主线程方法是什么,有什么作用?
有大量的计算需要处理或者网络情况较差时进行网络请求又不想影响到主线程时。
线程同步,按照先进先出的顺序执行任务,前一个线程会阻塞后面线程的进行
dispatch_sync(queue,{
//do something here
})
dispatch_async(dispatch_get_mainQueue,{
//do something here,such as refresh UI
});
回调主线程主要是刷新UI