zoukankan      html  css  js  c++  java
  • NSThread创建线程

     1 #import "ViewController.h"
     2 
     3 @interface ViewController ()
     4 
     5 @end
     6 
     7 @implementation ViewController
     8 
     9 - (void)viewDidLoad {
    10     [super viewDidLoad];
    11     // Do any additional setup after loading the view, typically from a nib.
    12     //第一种方式
    13     UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeSystem];
    14     btn1.frame = CGRectMake(50, 100, 100, 40);
    15     [btn1 setTitle:@"按钮一" forState:UIControlStateNormal];
    16     [btn1 addTarget:self action:@selector(threadOne:) forControlEvents:UIControlEventTouchUpInside];
    17     [self.view addSubview:btn1];
    18     
    19     //第二种方式
    20     UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeSystem];
    21     btn2.frame = CGRectMake(50, 200, 100, 40);
    22     [btn2 setTitle:@"按钮二" forState:UIControlStateNormal];
    23     [btn2 addTarget:self action:@selector(threadTwo:) forControlEvents:UIControlEventTouchUpInside];
    24     [self.view addSubview:btn2];
    25 }
    26 
    27 //第二种方式
    28 -(void)threadTwo:(id)sender
    29 {
    30     //NSLog(@"点击了按钮");
    31     //参数一:线程执行体方法所属的对象
    32     //参数二:线程执行体对应的方法
    33     //参数三:线程执行体方法的实参
    34     NSNumber *n=@50;
    35     //创建线程  并没有启动(需手动启动)
    36     NSThread *t = [[NSThread alloc] initWithTarget:self selector:@selector(createThreadTwo:) object:n];
    37     t.name = @"线程B";
    38     [t start];
    39     
    40 }
    41 
    42 -(void)createThreadTwo:(NSNumber *)n
    43 {
    44     for (int i=0; i<n.intValue; i++) {
    45         NSThread *t = [NSThread currentThread];
    46         NSLog(@"执行了%@:%d",t.name,i);
    47     }
    48 }
    49 
    50 //第一种方式
    51 -(void)threadOne:(id)sender
    52 {
    53     //参数一:线程执行体的方法
    54     //参数二:线程执行体所属对象
    55     //参数三:线程执行体方法传递的实参
    56     NSNumber *n = @100;
    57     //创建并启动一个线程
    58     [NSThread detachNewThreadSelector:@selector(createOne:) toTarget:self withObject:n];
    59 }
    60 
    61 - (void)createOne:(NSNumber *)n
    62 {
    63     [NSThread currentThread].name = @"线程A";
    64     
    65     for (int i=0; i<n.intValue; i++) {
    66         //[NSThread sleepForTimeInterval:1];
    67         NSLog(@"执行%@:%d",[NSThread currentThread].name,i);
    68     }
    69 }
    70 
    71 - (void)didReceiveMemoryWarning {
    72     [super didReceiveMemoryWarning];
    73     // Dispose of any resources that can be recreated.
    74 }
    75 
    76 @end
  • 相关阅读:
    Spring Boot
    AWS DynamoDB
    VBA读excel写xml
    WebSocket API 学习
    故障排除 Mybatis ORA-01000 和 本地缓存问题
    Java基础
    Java Tutorials Lambda表达式 翻译
    在代理环境中构建maven环境
    Pom
    我的JAVA笔记
  • 原文地址:https://www.cnblogs.com/liaods/p/4788882.html
Copyright © 2011-2022 走看看