多线程相关问题的整理

来源:互联网 发布:iphone mac连接 编辑:程序博客网 时间:2024/06/11 20:12

/…………………….NSThread………………………/

1.同步 异步 区别在于消息如何通知的机制 同步要调用者一直等到调用获取到结果时才可以执行接下来的操作

2.什么时候开子线程
(1)耗时的操作(网络请求)不要放主线程,会导致卡顿现象
(2)用户触摸事件、滑动事件、UI的刷新、都应该放在主线程

3.死亡的线程不能再次开启 也不能重复开启
[thread start]; 不能用两次

4.子线程中创建的对象 不会加入到主线程的自动释放池中
自己开启的子线程 需要自己添加到自动释放池

5.为了使子线程可以重复利用 使用下面的方法使子线程保持活跃状态
[[NSRunLoopcurrentRunLoop]run]; 

6.提前退出子线程
[MyTheadexit];//提前退出

7.线程的通信
(1)一个线程将数据传递到另外一个线程(一般子线程回到主线程)
(2)一个线程做完一个任务,切换到另外一个线程

/……………………………NSOperation………………………./


8.加锁 要传入同一个对象
@synchronized(self) {//这里要求传入一个对象要保证每次传入的是同一个对象

9.NSLock的缺点
_lock= [[NSLockalloc]init];//必须要在同一个线程里解锁同时加锁两次会导致死锁

10.atomic,synchronized,NSLock,pthread mutex,OSSpinLock的差别
http://perpendiculo.us/2009/09/synchronized-nslock-pthread-osspinlock-showdown-done-right/

11.同步操作不能开启子线程

12.同步、异步、串行、并行
串行反正只许你开一个线程
同步就是反正只准你一步一步执行



















0 0
原创粉丝点击