网络多线程-NSOperation的常用的方法
来源:互联网 发布:淘宝客服介入处理时间 编辑:程序博客网 时间:2024/05/01 06:01
#import "ViewController.h"
#import "XMGOperation.h"
@interface ViewController ()
/** */
@property(nonatomic ,strong)NSOperationQueue *queue;
@end
@implementation ViewController
- (IBAction)startBtnClick:(id)sender {
//1.创建队列
//串行和并发的功能,默认是并发
NSOperationQueue *queue = [[NSOperationQueuealloc]init];
XMGOperation *op1 = [[XMGOperationalloc]init];
[queue addOperation:op1];
/*
//最大并发数:同一时间最多可以处理多少个操作
queue.maxConcurrentOperationCount = 1;
//2.封装操作
NSBlockOperation *op1 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"1-%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:1.0];
}];
NSBlockOperation *op2 = [NSBlockOperation blockOperationWithBlock:^{
for (NSInteger i = 0; i<1000; i++) {
NSLog(@"2-%zd--%@",i,[NSThread currentThread]);
}
}];
NSBlockOperation *op3 = [NSBlockOperation blockOperationWithBlock:^{
for (NSInteger i = 0; i<1000; i++) {
NSLog(@"3-%zd--%@",i,[NSThread currentThread]);
}
}];
NSBlockOperation *op4 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"4-%@",[NSThread currentThread]);
}];
NSBlockOperation *op5 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"5-%@",[NSThread currentThread]);
}];
NSBlockOperation *op6 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"6-%@",[NSThread currentThread]);
}];
//3.添加操作到队列
[queue addOperation:op1];
[queue addOperation:op2];
[queue addOperation:op3];
[queue addOperation:op4];
[queue addOperation:op5];
[queue addOperation:op6];
*/
self.queue = queue;
}
- (IBAction)susPendBtnClick:(id)sender {
//suspended 暂停:当为YES的时候暂停,NO的时候表示恢复
//注意:暂停可以恢复的
//暂停不会暂停当前正在执行的任务,暂停的是下一个任务
if (self.queue.suspended) {
self.queue.suspended =NO;
}else
{
self.queue.suspended =YES;
}
}
- (IBAction)cancelBtnClick:(id)sender {
//取消是不可以恢复
[self.queuecancelAllOperations];
}
@end
/*********-XMGOperation.m文件-****/
#import "XMGOperation.h"
@implementation XMGOperation
-(void)main
{
for (NSInteger i =0 ; i<1000; i++) {
NSLog(@"任务1--%zd-%@",i,[NSThreadcurrentThread]);
}
//判断当前操作是否被取消,如果被取消那么就直接返回
if (self.isCancelled) {
return;
}
NSLog(@"++++++++++++");
for (NSInteger i =0 ; i<1000; i++) {
NSLog(@"任务2--%zd-%@",i,[NSThreadcurrentThread]);
}
NSLog(@"++++++++++++");
if (self.isCancelled) {
return;
}
for (NSInteger i =0 ; i<1000; i++) {
NSLog(@"任务3--%zd-%@",i,[NSThreadcurrentThread]);
}
}
@end
- 网络多线程-NSOperation的常用的方法
- 网络多线程-NSOperation的简单使用
- ios 多线程 -- NSOperation 常用方法
- NSOperation多线程的使用
- iOS多线程NSOperation的使用
- 多线程:NSOperation 的基本使用
- 多线程:NSOperation 的高级功能
- 多线程:NSOperation 的依赖使用
- 多线程:NSOperation 的基本使用
- 多线程NSOperation--自定义非并行的 NSOperation(二)
- 多线程的使用(2) - NSOperation和NSOperationQueue
- NSOperation的子集–NSInvocationOperation 多线程编程
- iOS多线程 NSOperation和NSOperationQueue的使用
- 多线程的使用(2) - NSOperation和NSOperationQueue
- 多线程 - 10.NSOperation的使用示例
- 【iOS】多线程NSOperation 与 GCD的区别
- NSOperation多线程的使用与理解
- iOS多线程编程NSOperation的使用
- C/C++——头文件重复包含问题
- [leetcode] 96. Unique Binary Search Trees
- ld: framework not found -fobjc-arc
- ZJU 3469(区间DP)
- SDUT 数据结构实验之图论四:迷宫探索 (DFS)
- 网络多线程-NSOperation的常用的方法
- 1015. Reversible Primes (20)
- java基础之IO流
- lamport一次签名的C语言简单实现
- 虚拟机,yum命令报错
- 网络多线程-NSOperation操作依赖和监听
- 一周优化总结
- Git远程操作
- 接口设计