//创建队列 NSOperationQueue *queue = [[NSOperationQueue alloc]init]; //封装操作 NSBlockOperation *op3 = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"执 ...
分类:
编程语言 时间:
2019-02-23 00:57:57
阅读次数:
182
首先看个产生死锁的代码-(void)syncMain{ //获得主队列 dispatch_queue_t queue = dispatch_get_main_queue(); NSLog(@"start"); //同步函数 dispatch_sync(queue, ^{ NSLog(@" %@",[ ...
分类:
其他好文 时间:
2019-02-19 22:23:29
阅读次数:
222
多条线程抢夺同一资源时,经常需要加锁,保证同一时间只能有一条线程操作一个资源。 同步锁就是互斥锁 格式:@synchronized (token) { } token:锁对象,要使用全局的对象,建议使用self {} 要加锁的代码段 注意点:加多把锁是无效的。 要注意加锁的位置。 互斥锁的优点: 能 ...
分类:
编程语言 时间:
2019-02-16 00:00:31
阅读次数:
279
一、添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控制器view的layer上) 二、添加一个显示图片的图层 代码示例: 执行效果: 说明:在第27行设置需要显示的图片,注意,这里用的是UIImag ...
分类:
移动开发 时间:
2019-02-05 20:56:06
阅读次数:
248
立体电影 百科名片 1953年5月24日立体电影首次出现,为了把观众从电视夺回来,好莱坞推出了一种新玩艺儿--立体电影。戴着特殊眼镜的观众像在观看《布瓦那魔鬼》及《蜡屋》这类惊险片那样,发现自己躲在逃跑的火车及魔鬼的后面。从而为我们带入了立体电影的时代。 历史 1936年利用双镜头摄影机和偏振片可以 ...
分类:
其他好文 时间:
2019-02-01 11:17:33
阅读次数:
773
CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame]; CGFloat rectStatusHeight = rectStatus.size.height; NSLog(@"status width - %f",... ...
分类:
移动开发 时间:
2019-01-28 12:03:12
阅读次数:
445
你好2019!一起努力呀! 直奔主题 1、dispatch_barrier_async VS dispatch_barrier_sync NSLog(@"main 1--"); dispatch_async(self.concurrentQueue, ^{ NSLog(@"test1 begin - ...
分类:
其他好文 时间:
2019-01-26 18:45:41
阅读次数:
142
``` Objective-C
/*********** 0 执行1次而已 ******************/
+ (void)load { NSLog(@" 0:%s", __func__);
} /*********** 1 执行1次而已 ******************/
+ (voi... ...
分类:
其他好文 时间:
2018-12-04 21:09:40
阅读次数:
218
屏幕快照 2017-12-19 下午1.46.25.png 需求:如下操作打印的文档为 NSLog(@"开始");for(NSIntegeri =0; i <5; i++) { [RequestUtil requestFavoriteGroup:appDelegate.userInfo.uid an ...
分类:
Web程序 时间:
2018-11-13 20:24:23
阅读次数:
222
上面的代码的后台输出是: 可以发现,因为block内被加了休眠sleep,所以block外的NSLOG操作被先执行了。而在block1被执行完毕后,block2和线程结束的部分的内容才被执行 ...
分类:
编程语言 时间:
2018-11-07 11:31:49
阅读次数:
198