標籤:
/**
*建立一個隊列(串列)
**/
dispatch_queue_t queue1 = dispatch_queue_create("queue1", DISPATCH_QUEUE_SERIAL);
/**
*添加代碼塊 執行線程的路徑
**/
dispatch_async(queue1, ^{
for (int i = 0; i<100; i++) {
NSLog(@"線程一,%d",i);
}
});
用C語言函數的方式建立線程
dispatch_sync_f(queue1, NULL, treadFun);//用線程函數的方式作為線程的路徑
void treadFun(){
for (int i =0 ; i<100; i++) {
NSLog(@"線程2,%d",i);
}
}
// dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, 2*NSEC_PER_SEC);
// dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// dispatch_after(time, queue, ^{
// NSLog(@"222");
// });
上面代碼等價於
NSLog(@"11111");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"2222222");
});
/**
*過一段時間後才執行
1,dispatch_after
2,NSObject performSelector
3,timer 定時器方法
**/
[super viewDidLoad];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(myfun) userInfo:nil repeats:YES];
[timer invalidate];
// [self performSelector:@selector(myfun) withObject:nil afterDelay:5.0];
iOS學習筆記31-多線程深入