iOS线程关键资源加锁

新建一个view-based application,

viewcontroller.h的代码如下:

#import <UIKit/UIKit.h>

@interface tConditionViewController : UIViewController {
    int tickets;
    NSThread *t1;
    NSThread *t2;
    NSCondition *tc;
}
-(void)doSomething:(id)tname;
@end

 

viewcontroller.m的代码如下:

#import "tConditionViewController.h"

@implementation tConditionViewController
-(void)doSomething:(id)tname
{
    NSString *name = (NSString *)tname;
    while (TRUE) {
        NSLog(@"in thread %@", name);
        [NSThread sleepForTimeInterval:1];
        [tc lock];
        NSLog(@"kkkk");
        [tc unlock];
    }
}
- (void)dealloc
{
    [super dealloc];
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
   
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    tc = [[NSCondition alloc] init];
    t1 = [[NSThread alloc] initWithTarget:self selector:@selector(doSomething:) object:@"1"];
    [t1 start];
    t2 = [[NSThread alloc] initWithTarget:self selector:@selector(doSomething:) object:@"2"];
    [t2 start];
    [super viewDidLoad];
}


- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

 

阅读更多
个人分类: iOS-中级
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭