iOS学习之 - 线程的生命周期

来源:互联网 发布:斯蒂芬马布里nba数据 编辑:程序博客网 时间:2024/05/29 11:29
NSThread *thread = [NSThread alloc]initWithTarget:self selector:@selector(run)object:nil];[thread start];

thread 创建线程对象处于新建状态,不会自动执行

[thread start];内存中就出现可调度线程池

线程任务执行完毕,异常/强制退出时线程会进入死亡状态,但内存对象还在,只是不能用

新建 --- start --- runnable --- cup调度当前线程 --- running 

blocked 阻塞

dead 死亡


互斥锁 锁定1份代码只用1把锁

能够有效防止因多线程抢夺资源造成数据安全问题

需要消耗大量的CPU资源

多条线程抢夺同一资源时使用@synchronized(所对象)


线程同步:多条线程按顺序执行

互斥锁使用了线程同步


atomic:原子属性为setter方法加锁,线程安全,需要消耗大量资源

nonatomic:非原子属性,不会为setter加锁,非线程安全,适合内存小的移动设备

所有属性都声明为Nonatomic

避免多线程抢夺统一块资源

加锁,资源抢夺的业务逻辑交给服务器端处理



0 0
原创粉丝点击