当多条线程访问同一块资源的时候,就会出现数据错乱和数据安全的问题!
1.ATM机取钱; 卖票;
2.解决方案:互斥锁 @synchronized(锁对象self){ /*需要锁住的代码,越少越好!*/ } ------- 加锁!
注意:锁定一份代码只用一把锁,用多把锁是无效的!
优点:能有效防止因多线程抢夺资源而引起的数据安全问题!
缺点:需要消耗大量的CPU资源!
结论:尽量少加锁!互斥锁的使用前提是多条线程抢夺同一块资源!
3.添加互斥锁技巧: [[NSUserDefaults standardUserDefaults] synchronize];
4.线程同步技术: ----- 互斥锁使用了线程同步技术!
多条线程在同一条线上按顺序执行任务!
5.线程安全:保证多条线程进行读写操作,都能够得到正确的结果!
用 '锁' 来实现线程安全!
1.ATM机取钱; 卖票;
2.解决方案:互斥锁 @synchronized(锁对象self){ /*需要锁住的代码,越少越好!*/ } ------- 加锁!
注意:锁定一份代码只用一把锁,用多把锁是无效的!
优点:能有效防止因多线程抢夺资源而引起的数据安全问题!
缺点:需要消耗大量的CPU资源!
结论:尽量少加锁!互斥锁的使用前提是多条线程抢夺同一块资源!
3.添加互斥锁技巧: [[NSUserDefaults standardUserDefaults] synchronize];
4.线程同步技术: ----- 互斥锁使用了线程同步技术!
多条线程在同一条线上按顺序执行任务!
5.线程安全:保证多条线程进行读写操作,都能够得到正确的结果!
用 '锁' 来实现线程安全!