/…………………….NSThread………………………/
1.同步 异步 区别在于消息如何通知的机制 同步要调用者一直等到调用获取到结果时才可以执行接下来的操作
2.什么时候开子线程
(1)耗时的操作(网络请求)不要放主线程,会导致卡顿现象
(2)用户触摸事件、滑动事件、UI的刷新、都应该放在主线程
3.死亡的线程不能再次开启 也不能重复开启
[thread start]; 不能用两次
4.子线程中创建的对象 不会加入到主线程的自动释放池中
自己开启的子线程 需要自己添加到自动释放池
5.为了使子线程可以重复利用 使用下面的方法使子线程保持活跃状态
[[
NSRunLoop
currentRunLoop
]
run
];
6.提前退出子线程
[
MyThead
exit
];
//
提前退出
7.线程的通信
(1)一个线程将数据传递到另外一个线程(一般子线程回到主线程)
(2)一个线程做完一个任务,切换到另外一个线程
/……………………………NSOperation………………………./
8.加锁 要传入同一个对象
@synchronized
(
self
) {
//
这里要求传入一个对象
要保证每次传入的是同一个对象
9.NSLock的缺点
_lock
= [[
NSLock
alloc
]
init
];
//
必须要在同一个线程里解锁
同时加锁两次会导致死锁
10.atomic,synchronized,NSLock,pthread mutex,OSSpinLock的差别
11.同步操作不能开启子线程
12.同步、异步、串行、并行
串行反正只许你开一个线程
同步就是反正只准你一步一步执行