在Objecttive-C里创建多线程一般有两种方法, 一种是initWithTarget,还有一种是detachNewThreadSelector。
下面是两个实例,创建多线程的实例,支持传递参数.
initWithTarget方式
// // main.m // initWithTarget // Created by exchen on 5/8/15. // Copyright (c) 2015 exchen. All rights reserved. // #import <Foundation/Foundation.h> @interface classa : NSObject -(void)StartThread:(NSString *)str; @end @implementation classa -(void)StartThread:(NSString *)str { sleep(3); NSLog(str); exit(0); } @end int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); } classa *a = [[classa alloc] init]; NSThread *thread = [[NSThread alloc] initWithTarget:a selector:@selector(StartThread:) object:@"Start"]; [thread start]; sleep(5); return 0; }
detachNewThreadSelector方式
// // main.m // TestThread // // Created by exchen on 5/8/15. // Copyright (c) 2015 exchen. All rights reserved. // #import <Foundation/Foundation.h> @interface classa : NSObject -(void)StartThread:(NSString *)str; @end @implementation classa -(void)StartThread:(NSString *)str { NSLog(@"%@",str); exit(0); } @end int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); classa *a = [[classa alloc] init]; [NSThread detachNewThreadSelector:@selector(StartThread:) toTarget:a withObject:@"Start"]; sleep(5); } return 0; }
时间: 2024-10-27 13:14:51