第一篇:NSTread线程的创建

时间:2023-03-09 15:45:09
第一篇:NSTread线程的创建

#import "ViewController.h"

//导入头文件

#import <pthread.h>

@interfaceViewController ()

@end

@implementation ViewController

- (void)viewDidLoad

{

[superviewDidLoad];

[selfbtnClick];

}

/*

*NSThread创建线程方式

*1.先初始化线程

*2.start开启线程

*/

-(void)btnClick

{

//1.获取当前线程

NSThread * current = [NSThreadcurrentThread];

//主线程

NSLog(@"进入主线程--%@",current);

//获取主线程的另一中方式

NSThread*main =[NSThreadmainThread];

NSLog(@"主线程2--%@",main);

//执行一些耗时操作(分多一个线程)

[selfcreatNSTread];

}

-(void)creatNSTread

{

NSThread * thread1=[[NSThreadalloc]initWithTarget:selfselector:@selector(run:) object:@"线程A"];

//设置一个名称

thread1.name=@"线程A";

//开启线程

[thread1 start];

NSThread * thread2=[[NSThreadalloc]initWithTarget:selfselector:@selector(run:) object:@"线程B"];

//设置一个名称

thread2.name=@"线程B";

//开启线程

[thread2 start];

}

-(void)run:(NSString*)str

{

//获取当前线程

NSThread * current=[NSThreadcurrentThread];

//打印输出

for (int i=0; i<10; i++) {

NSLog(@"run--%@--%@",current,str);

}

}

运行结果:

第一篇:NSTread线程的创建

/******************************创建NSTread线程方式2**************************************/

#import "ViewController.h"

//导入头文件

#import <pthread.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

[self btnClick];

}

-(void)btnClick

{

//1.获取当前线程

NSThread * current = [NSThread currentThread];

//主线程

NSLog(@"进入主线程--%@",current);

//获取主线程的另一中方式

NSThread*main =[NSThread mainThread];

NSLog(@"主线程2--%@",main);

//执行一些耗时操作(分多一个线程)

[self creatNSTread2];

[self creatNSTead3];

}

/*

*NSTread创建线程方式2

*创建完线程直接启动(自动)

*/

-(void)creatNSTread2

{

[NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"第一线程"];

}

-(void)creatNSTead3

{

//在后台线程执行在子线程中执行

[self performSelectorInBackground:@selector(run:) withObject:@"第二线程"];

}

-(void)run:(NSString*)str

{

//获取当前线程

NSThread * current=[NSThread currentThread];

//打印输出

for (int i=0; i<10; i++) {

NSLog(@"run--%@--%@",current,str);

}

}

运行结果:

第一篇:NSTread线程的创建