博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios31--NSThread
阅读量:6268 次
发布时间:2019-06-22

本文共 2504 字,大约阅读时间需要 8 分钟。

////  ViewController.m//  03-掌握-NSThread基本使用#import "ViewController.h"#import "XMGThread.h"@interface ViewController ()@end@implementation ViewController-(void)touchesBegan:(NSSet
*)touches withEvent:(UIEvent *)event{ [self createNewThread1];}//1.alloc init 创建线程,需要手动启动线程,根据线程的number判断是不是同一个线程。//线程的生命周期:当任务执行完毕之后被释放掉(比较特殊,)-(void)createNewThread1{ //1.创建线程 /* 第一个参数:目标对象 self 第二个参数:方法选择器 调用的方法 第三个参数:前面调用方法需要传递的参数 nil */ //XMGThread是继承自NSThread的类,threadA是局部变量,大括号之后就销毁了, XMGThread *threadA = [[XMGThread alloc]initWithTarget:self selector:@selector(run:) object:@"ABC"]; //设置属性 threadA.name = @"线程A";//属性用点语法和set方法是一样的。 //设置优先级 取值范围 0.0 ~ 1.0 之间 最高是1.0 默认优先级是0.5,获取cpu的几率更大, threadA.threadPriority = 1.0; //2.启动线程,// 进入就绪状态 -> 运行状态。当线程任务执行完毕,自动进入死亡状态 [threadA start]; NSThread *threadB = [[NSThread alloc]initWithTarget:self selector:@selector(run:) object:@"ABC"];//object是run方法的参数,处于暂停状态。 threadB.name = @"线程b"; threadB.threadPriority = 0.1; [threadB start]; NSThread *threadC = [[NSThread alloc]initWithTarget:self selector:@selector(run:) object:@"ABC"]; threadC.name = @"线程C"; [threadC start]; [self createNewThread3]; }//2.分离子线程,自动启动线程,不需要start,拿不到线程对象,无法对线程进行更详细的设置-(void)createNewThread2{ [NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"分离子线程"];}//3.开启一条后台线程,不需要start,拿不到线程对象,无法对线程进行更详细的设置-(void)createNewThread3{ [self performSelectorInBackground:@selector(run:) withObject:@"开启后台线程"];}-(void)run:(NSString *)param{ NSLog(@"---run----%@---%@",[NSThread currentThread].name,param); for (NSInteger i = 0; i<1; i++) { NSLog(@"%zd----%@",i,[NSThread currentThread].name); }}@end/* 启动线程 - (void)start; // 进入就绪状态 -> 运行状态。当线程任务执行完毕,自动进入死亡状态 阻塞(暂停)线程 + (void)sleepUntilDate:(NSDate *)date; + (void)sleepForTimeInterval:(NSTimeInterval)ti; // 进入阻塞状态 强制停止线程 + (void)exit; // 进入死亡状态 注意:一旦线程停止(死亡)了,就不能再次开启任务 */
////  XMGThread.h//  03-掌握-NSThread基本使用////  Created by xiaomage on 16/2/18.//  Copyright © 2016年 小码哥. All rights reserved.//#import 
@interface XMGThread : NSThread@end
////  XMGThread.m//  03-掌握-NSThread基本使用////  Created by xiaomage on 16/2/18.//  Copyright © 2016年 小码哥. All rights reserved.//#import "XMGThread.h"@implementation XMGThread-(void)dealloc{    NSLog(@"dealloc----%@",[NSThread currentThread]);  //线程的run方法执行完之后,才调用。}@end

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7489412.html,如需转载请自行联系原作者

你可能感兴趣的文章
phpstorm psr2样式.xml
查看>>
js 无限级分类
查看>>
umask值与Linux中文件和目录权限的关系
查看>>
python自动化开发-8
查看>>
bzoj 2127: happiness
查看>>
Python 3.5 之路 day1
查看>>
selenium使用chrome抓取自动消失弹框的方法
查看>>
实现strStr()---简单
查看>>
只有PD号的调起
查看>>
返回一个整数数组中最大子数组的和
查看>>
leetcode(二)
查看>>
利用css实现居中的方法
查看>>
Spring + Hibernate 框架
查看>>
添加浏览器的用户样式表
查看>>
LigerUI学习笔记之布局篇 layout
查看>>
LeetCode题解(二)
查看>>
Mybatis通用Mapper
查看>>
文件磁盘命令(就该这么学6章内容)
查看>>
2016-207-19 随笔
查看>>
java的double类型如何精确到一位小数?
查看>>