iOS 07-线程安全 同步锁
来源:互联网 发布:淘宝特卖苹果手机 编辑:程序博客网 时间:2024/05/22 13:06
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong) NSThread *th1;
@property (nonatomic,strong) NSThread *th2;
@property (nonatomic,strong) NSThread *th3;
@property (nonatomic,assign) NSInteger tickets;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.tickets =1000;
self.th1 = [[NSThreadalloc] initWithTarget:selfselector:@selector(sellTickets)object:nil];
self.th1.name =@"小丽";
self.th2 = [[NSThreadalloc] initWithTarget:selfselector:@selector(sellTickets)object:nil];
self.th2.name =@"小明";
self.th3 = [[NSThreadalloc] initWithTarget:selfselector:@selector(sellTickets)object:nil];
self.th3.name =@"小张";
}
-(void)sellTickets {
while (self.tickets >0) {
//token 锁对象锁对象时同一个,时唯一的、这里用self即可
@synchronized (self) {
NSInteger currentTickers =self.tickets;
if (currentTickers >0) {
NSLog(@"%@卖一张票,还剩下%ld张", [NSThread currentThread].name,
--self.tickets);
}else{
NSLog(@"已经售罄");
}
}
}
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self.th1start];
[self.th2start];
[self.th3start];
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
- iOS 07-线程安全 同步锁
- iOS多线程安全锁介绍---线程同步
- iOS多线程安全 - 线程同步
- 线程安全与同步锁
- 线程同步&线程安全
- 线程安全&线程同步
- IOS网络笔记--多线程编程2(线程安全--同步锁)
- 线程同步安全与锁优化
- 安全的线程同步
- 安全的线程同步
- 安全的线程同步
- 安全的线程同步
- 安全的线程同步
- 安全的线程同步
- synchronized 线程同步安全
- 线程安全同步问题
- 线程同步和安全
- iOS 线程安全与锁
- 高精度数字
- KMP算法初学
- 统计文件
- CollapsingToolbarLayout展开与收回监听
- STS打开后闪退解决方案之一
- iOS 07-线程安全 同步锁
- 机器学习第八周(一)--K-means
- erlang游戏服务器
- C/C++中memset函数
- 【干货分享】大数据开发套件DataIDE使用教程
- SpringBoot 定时任务的使用
- 安装ruby
- 15
- crontab记录的日志时间与系统时间不一致