多线程相关问题的整理

/…………………….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.同步、异步、串行、并行
串行反正只许你开一个线程
同步就是反正只准你一步一步执行



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值