多线程 NSThread 了解
用NSThread创建子线程的3种方法
// DYFViewController.m
// 623-02-pthread
//
// Created by dyf on 14-6-23.
// Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
//
#import "DYFViewController.h"
#import <pthread.h>
@interface
DYFViewController ()
@end
@implementation
DYFViewController
//// c语言函数
//void *run(void *data)
//{
// // 1.获取当前的线程
// NSThread *cThread = [NSThread currentThread];
//
// // 2.打印线程
// NSLog(@"%@", cThread);
//
// // 3.h耗时操作
// for (int i = 0; i < 9999; i++) {
// NSLog(@"%@", cThread);
// }
//
// return NULL;
//}
- (
IBAction
)btnOnClick {
// 1.获取当前的线程
NSThread
*cthread = [
NSThread
currentThread];
NSThread
*mt = [
NSThread
mainThread];
// 2.打印线程
NSLog
(@
"%@"
, cthread);
NSLog
(@
"%@"
, mt);
// 3.执行一线耗时的操作 : 创建一套子线程
[
self
threadCreate3];
}
- (
void
)run:(
NSString
*)parma
{
// [NSThread threadPriority];
//
// [NSThread setThreadPriority:0.55];
// 取值0-1,默认0.5
for
(
int
i = 0; i < 9999; i++) {
NSLog
(@
"%@---------%@"
, [
NSThread
currentThread], parma);
}
}
- (
void
)threadCreate5
{
// 分离出的子线程
[
NSThread
detachNewThreadSelector:
@selector
(run:) toTarget:
self
withObject:@
"2222222"
];
}
- (
void
)threadCreate4
{
// 分离出的子线程
[
NSThread
detachNewThreadSelector:
@selector
(run:) toTarget:
self
withObject:@
"2222222"
];
}
/**
* NSThread创建方式3:隐世线程创建,并且直接(自动)启动
*/
- (
void
)threadCreate3
{
[
self
performSelectorInBackground:
@selector
(run:) withObject:@
"333333"
];
}
/**
* 创建方式2:创建完线程后自动启动
*/
- (
void
)threadCreate2
{
// 分离出的子线程
[
NSThread
detachNewThreadSelector:
@selector
(run:) toTarget:
self
withObject:@
"2222222"
];
}
/**
* 创建方式1:①先创建初始化子线程②再启动
*/
- (
void
)threadCreate
{
NSThread
*thread1 = [[
NSThread
alloc] initWithTarget:
self
selector:
@selector
(run:) object:@
"heheh"
];
thread1.name = @
"thread1"
;
// 开启线程
[thread1 start];
NSThread
*thread2 = [[
NSThread
alloc] initWithTarget:
self
selector:
@selector
(run:) object:@
"heheh"
];
thread2.name = @
"thread2"
;
// 开启线程
[thread2 start];
NSThread
*thread3 = [[
NSThread
alloc] initWithTarget:
self
selector:
@selector
(run:) object:@
"heheh"
];
thread3.name = @
"33"
;
// 开启线程
[thread3 start];
}
@end
利用NSThread在开发中也不常用,了解即可