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

     写的挺好的

  • 相关阅读:
    善待自己的恻隐之心
    FormLayout and FormData
    jquery获取元素索引值index()方法
    Kohana 之ORM文档篇
    css 圆角相框
    Kohana 之 request
    firefox通过XUL实现textoverflow:ellipsis的效果
    jquery 插件开发备注
    Kohana 之ORM实际使用篇
    PHP扩展编写与编译
  • 原文地址:https://www.cnblogs.com/chebaodaren/p/5165295.html
Copyright © 2011-2022 走看看