标签:
1、线程间资源共享/抢夺
(1)定义:一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源,当多个线程访问同一块资源时,各个线程提取和修改数据不同步,很容易引发数据错乱和数据安全问题。
(2)互斥锁(线程同步) :解决上面的问题
线程执行到synchronized
i. 检查锁状态 如果是开锁状态转到ii ,如果上锁转到v
ii. 上锁(0)
iii. 执行代码块
iv. 执行完毕 开锁(1)
v. 线程等待(就绪状态)
2、原子属性
(1)属性中的修饰符
3、线程安全
4、NSRunLoop
(1)功能作用:运行循环,又叫消息循环或事件循环。
(2)特点:
(3)(两大核心之一)输入事件:输入源(比如键盘输入,滚动scrollView,performSelector方法等等),定时源(定时器)
(4)(两大核心之二)运行模式(消息循环模式):
//定时源 (计时器)
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(demo) userInfo:nil repeats:YES];
/*
参数1:输入源
参数2:输入源的模式,要和当前消息循环的模式对应,才可以让消息循环执行输入源
NSDefaultRunLoopMode默认模式 NSRunLoopCommonModes包含了很多种模式
*/
[[NSRunLoop currentRunLoop]addTimer:timer forMode:NSRunLoopCommonModes];
5、自动释放池
(2)子线程的自动释放池:
例如:
for (int i = 0; i < largeNumber; ++i) {
@autoreleasepool {
NSString *str = @"Hello World";
str = [str stringByAppendingFormat:@" - %d", i];
str = [str uppercaseString];
}
}
(4)示意图
标签:
原文地址:http://www.cnblogs.com/David-SU/p/5264141.html