日常记录

2018-09-06  本文已影响0人  落寞King

平常小问题

1.控制器的view不设置背景色,会不响应UIResponder代理方法.
2.sourcetree每次推送都会要求输入密码,只需在路径http://后添加上自己的用户名@即可
3.利用CAKeyframeAnimation加载gif图时,想让动画执行完停在结束位置,而不是被移除,同时设置这两行代码可以让控件停在结束位置
animation.removedOnCompletion = NO;
animation.fillMode=kCAFillModeForwards;

多线程

1.对于多线程操作建议把线程操作放到@autoreleasepool中.NSThread和NSOperationQueue开辟子线程需要手动创建autoreleasepool,GCD开辟子线程不需要手动创建autoreleasepool,因为GCD的每个队列都会自行创建autoreleasepool.

    1. 开不开线程,取决于执行任务的函数,同步不开,异步开。
    2. 开几条线程,取决于队列,串行开一条,并发开多条(异步)
    3. 主队列: 专门用来在主线程上调度任务的"队列",主队列不能在其他线程中调度任务!
    4. 如果主线程上当前正在有执行的任务,主队列暂时不会调度任务的执行!主队列同步任务,会造成死锁。原因是循环等待
    5. 同步任务可以队列调度多个异步任务前,指定一个同步任务,让所有的异步任务,等待同步任务执行完成,这是依赖关系。
    6. 全局队列:并发,能够调度多个线程,执行效率高,但是相对费电。 串行队列效率较低,省电省流量,或者是任务之间需要依赖也可以使用串行队列。
    7. 也可以通过判断当前用户的网络环境来决定开的线程数。WIFI下6条,3G/4G下2~3条。
      参考博客 http://www.cnblogs.com/dsxniubility/p/4296937.html
      https://blog.csdn.net/fel835/article/details/53979432(解答为什么串行队列,同步情况下不堵塞主线程)
上一篇 下一篇

猜你喜欢

热点阅读