1、NSOperration基于cocoa框架实现,GCD底层是C语言实现;
2、NSOperration实现多线程更加面向对象,使用者只需要更多的关注对操作本身的处理即可,GCD更加抽象,代码简洁;
3、NSOperration可以通过KVO监控操作进行的状态(准备、执行中、完成、被取消),GCD无;
4、NSOperration可以很容易管理各个操作之间的依赖关系(addDependency:),CGD可以通过Block的嵌套实现,较为复杂;
5、NSOperationQueue可以设置最大并发数量 (setMaxConcurrentOperationCount:),GCD无;
网友评论