您的位置:首页 > 其它

线程开发中常遇到"PO"级别的"Bug"

2015-09-01 21:55 204 查看
// 创建线程

NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];

// 启动线程

[thread start];

线程池:存放线程的池子! 分为:

可调度线程池: CPU 只会调度可调度线程池中的线程! 下面蓝色状态都位于可调度线程池中! '就绪' ,'运行'!

不可调度线程池: 下面红色状态都位于不可调度线程池中! "新建" ,"阻塞" ,"死亡"!

线程状态:

start CPU调度当前线程 运行结束/强制退出(exit)

"新建" ---------->'就绪' -----------------> '运行' -----------------------> "死亡";

CPU 调度其他线程 CPU调度当前线程

'运行' ------------------> '就绪'-----------------> '运行'

调用 sleep/等待互斥锁 sleep时间到/得到互斥锁

'运行' -----------------------> "阻塞"-----------------------> '就绪';

线程运行结束或者强制退出(exit)就进入 "死亡" 状态;

"注意:一旦线程停止(死亡),就不可以再次开启任务!程序会挂掉: Crash!

平时开发中,要特别关注 Crash! :"PO"级别的 "Bug";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: