zoukankan      html  css  js  c++  java
  • 多线程

        dispatch_queue_t queue=dispatch_queue_create("luoliping", DISPATCH_QUEUE_SERIAL);
        
        dispatch_async(queue, ^{
            NSLog(@"%@",[NSThread currentThread]);
            
        });
        
        dispatch_suspend(queue);
        dispatch_resume(queue);
    
        dispatch_async(queue, ^{
            NSLog(@"%@",[NSThread currentThread]);
    
        });
        
        dispatch_async(queue, ^{
            NSLog(@"%@",[NSThread currentThread]);
            
        });
        
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            NSLog(@"2-%d",[NSThread isMainThread]);
            
            dispatch_async(dispatch_get_main_queue(), ^{
                NSLog(@"2-%d",[NSThread isMainThread]);
                //刷新表
                [_tableView reloadData];
            });
        });
    

    NSOperation和GCD的区别

    • NSTread:oc语言,面向对象,简单易用,可直接操作线程对象 ,线程生命周期由程序员管理
    • GCD的使用更轻量级,充分利用设备的多核,线程生命周期自动管理
    • 而NSOperation作为对象提供了更丰富的API,在NSOperationQueue中,可以随时取消要准备执行的任务,能够设置NSOperation的priority(优先级),使之按顺序执行
    • GCD只支持FIFO的队列,NSOperationQueue可以很方便的调整执行顺序,可以添加依赖设置最大并发数量。
    • KVO能应用在NSOperation中,以监听一个Operation是否完成或取消,这样能比GCD更加有效地掌控我们执行的后台任务
    • NSOperation通过继承,可以提高代码的复用度,这比GCD更有自由度和扩展性
    • NSOperationQueue支持KVO,可以检测Operation是否正在执行,是否结束,是否取消。

    任务之间不太相互依赖,选用GCD;

    任务之间有依赖,或者要监听任务的执行情况:NSOperationQueue



    http://www.cocoachina.com/ios/20180531/23605.html

    gcd面试向

    https://www.jianshu.com/p/1eecfca332f3

     写的挺好的

  • 相关阅读:
    OUT还开通博客!
    《超越想象——Windows_8应用设计与开发》
    kissy初体验(一)
    网页乱码!!!
    一起学习extjs()
    程序员你不懂爱,博客园就要倒下来。。
    如何用WordPress做网站?
    程序员,你懂的.
    Windows 8 应用开发技术资源
    开源easyui.selectdialog
  • 原文地址:https://www.cnblogs.com/chebaodaren/p/5165295.html
Copyright © 2011-2022 走看看