zoukankan      html  css  js  c++  java
  • NSThread多线程方式

     1 #import "TableViewController.h"
     2 
     3 @interface TableViewController ()
     4 
     5 @end
     6 
     7 @implementation TableViewController
     8 
     9 - (void)viewDidLoad {
    10     [super viewDidLoad];    
    11     
    12 }
    13 
    14 - (void)didReceiveMemoryWarning {
    15     [super didReceiveMemoryWarning];
    16     // Dispose of any resources that can be recreated.
    17 }
    18 
    19 #pragma mark - Table view data source
    20 
    21 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    22     return 1;
    23 }
    24 
    25 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    26     return 100;
    27 }
    28 
    29 
    30 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    31     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    32     //NSThread 线程对象,轻量级的多线程方式
    33     //手动创建,手动启动线程
    34     NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(loopIn) object:nil];
    35     //执行
    36     [thread start];
    37     //取消,线程启动前可以取消,
    38     [thread cancel];
    39     
    40     //自动执行线程
    41 //    [NSThread detachNewThreadSelector:@selector(loopIn) toTarget:self withObject:nil];
    42     
    43     return cell;
    44 }
    45 -(void)loopIn{
    46     
    47     //手动创建的子线程须添自动释放池,系统的子线程无需添加
    48     @autoreleasepool {
    49         //线程休眠(秒)
    50         [NSThread sleepForTimeInterval:1];
    51         
    52         //线程状态cancel/finish/excuting
    53         //获取当前线程,输出线程状态
    54         NSThread *currentThread = [NSThread currentThread];
    55         //当前线程是否取消
    56         NSLog(@"取消:%d",[currentThread isCancelled]);
    57         //当前线程是否结束
    58         NSLog(@"结束:%d",[currentThread isFinished]);
    59         //当前线程是否执行
    60         NSLog(@"执行:%d",[currentThread isExecuting]);
    61         for (int i = 0; i < 100; i++) {
    62             printf("%d",i);
    63             //线程退出,强制退出当前线程
    64             [NSThread exit];
    65         }
    66     }
    67     //线程休眠(秒)
    68     [NSThread sleepForTimeInterval:1];
    69     
    70     //线程状态cancel/finish/excuting
    71     //获取当前线程,输出线程状态
    72     NSThread *currentThread = [NSThread currentThread];
    73     //当前线程是否取消
    74     NSLog(@"取消:%d",[currentThread isCancelled]);
    75     //当前线程是否结束
    76     NSLog(@"结束:%d",[currentThread isFinished]);
    77     //当前线程是否执行
    78     NSLog(@"执行:%d",[currentThread isExecuting]);
    79     for (int i = 0; i < 100; i++) {
    80         printf("%d",i);
    81         //线程退出,强制退出当前线程
    82         [NSThread exit];
    83     }
    84     
    85 }
    86 
    87 
    88 
    89 @end
     1 #import "ViewController.h"
     2 
     3 @interface ViewController ()
     4 @property (weak, nonatomic) IBOutlet UIImageView *imageView;
     5 
     6 @end
     7 
     8 @implementation ViewController
     9 
    10 - (void)viewDidLoad {
    11     [super viewDidLoad];
    12     // Do any additional setup after loading the view, typically from a nib.
    13 }
    14 //返回
    15 - (IBAction)back:(UIButton *)sender {
    16     
    17     [self dismissViewControllerAnimated:YES completion:nil];
    18 //下载
    19 }
    20 - (IBAction)download:(id)sender {
    21     //自动线程
    22     [NSThread detachNewThreadSelector:@selector(loadImage) toTarget:self withObject:nil];
    23     
    24     
    25 }
    26 //加载图片
    27 -(void)loadImage
    28 {
    29     NSURL *url = [NSURL URLWithString:@"http://b.hiphotos.baidu.com/zhidao/pic/item/a8ec8a13632762d01650d902a3ec08fa513dc625.jpg"];
    30     NSData *imgData = [NSData dataWithContentsOfURL:url];
    31     
    32     UIImage *image = [UIImage imageWithData:imgData];
    33     self.imageView.image = image;
    34 }
    35 
    36 - (void)didReceiveMemoryWarning {
    37     [super didReceiveMemoryWarning];
    38     // Dispose of any resources that can be recreated.
    39 }
    40 
    41 @end
  • 相关阅读:
    什么是shell
    Jenkins+python+selenium持续继承自动化测试
    selenium+python自动化
    产品和项目的概念
    继承与派生:赋值兼容规则(转)
    继承与派生:虚基类及其派生类的构造函数(转)
    重载函数与函数模板(转)
    继承与派生:作用域分辨符(转)
    作用域和可见性(转)
    继承与派生:派生类的析构函数(转)
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5321219.html
Copyright © 2011-2022 走看看