Create multiple threads in Objecttive-C
There are two methods to create multithreading in Objecttive-C: initWithTarget and detachNewThreadSelector.
The following two instances are used to create multi-threaded instances and support passing parameters.
InitWithTarget Method
//// main.m// initWithTarget// Created by exchen on 5/8/15.// Copyright (c) 2015 exchen. All rights reserved.//#import
@interface classa : NSObject-(void)StartThread:(NSString *)str;@end@implementation classa-(void)StartThread:(NSString *)str{ sleep(3); NSLog(str); exit(0);}@endint 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 Mode
//// main.m// TestThread//// Created by exchen on 5/8/15.// Copyright (c) 2015 exchen. All rights reserved.//#import
@interface classa : NSObject-(void)StartThread:(NSString *)str;@end@implementation classa-(void)StartThread:(NSString *)str{ NSLog(@"%@",str); exit(0);}@endint 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;}