一 :多线程的常用方法
//判断当前线程是否是多线程
//+ (BOOL)isMultiThreaded;
//获取当前线程对象
//+ (BOOL)currentThread;
//使当前线程睡眠指定的时间,单位为秒
//+ (void)sleepForTimeInterval:(NSTimeInterval)ti;
//退出当前线程
//+ (void)exit;
//判断当前线程是否为主线程
//+ (void)isMainThread
//启动该线程
//- (void)start
二: GCD
//1,任务和队列
//
//GCD中有2个核心概念
//
//(1)任务:执行什么操作
//
//(2)队列:用来存放任务
//
//
//
//GCD的使用就2个步骤
//
//(1)定制任务
//
//(2)确定想做的事情
//
//
//
//将任务添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行
//
//提示:任务的取出遵循队列的FIFO原则:先进先出,后进后出
//
//2、执行任务
//
//1.GCD中有2个用来执行任务的函数
//
//说明:把右边的参数(任务)提交给左边的参数(队列)进行执行。
//
//(1)用同步的方式执行任务 dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
//
//参数说明:
//
//queue:队列
//
//block:任务
//
//
//
//(2)用异步的方式执行任务 dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
//
//2.同步和异步的区别
//
//同步:在当前线程中执行
//
//异步:在另一条线程中执行
- (void)viewDidLoad {
[super viewDidLoad];
//GCD
//创建一个队列
dispatch_queue_t queue = dispatch_queue_create("test", NULL);
dispatch_async(queue, ^{
for (int i; i<100; i++) {
NSLog(@"---多线程1--%d",i);
}
BOOL isMain = [NSThread isMainThread];
dispatch_sync(dispatch_get_main_queue(), ^{
BOOL isMain = [NSThread isMainThread];
if (isMain) {
NSLog(@"主线程");
}
});
});
//通过此种方式,还是同步运行在当前线程上
dispatch_sync(queue, ^{
//当前线程
});
}
欢迎指正错误,相互学习,欢迎加入IT技术学习交流群:554587323