@SanMao
2015-08-11T16:19:47.000000Z
字数 808
阅读 1287
多线程
// 第一个参数: 线程的代号(当做就是线程)
// 第二个参数: 线程的属性
// 第三个参数: 指向函数的指针, 就是将来线程需要执行的方法
// 第四个参数: 给第三个参数的指向函数的指针 传递的参数
pthread_t threadId;
// 只要create一次就会创建一个新的线程
pthread_create(&threadId , NULL, &demo, "lnj");
注意:如果正在执行系统分离出来的线程(子线程)时, 系统内部会retain当前线程,只有线程中的方法执行完毕, 系统才会将其释放(release)。
创建方式一(可拿到子线程对象设置一些属性,需要手动开启子线程)
// 创建子线程方式1
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
// 设置线程的其他属性
thread.name = @"second";
// 开启子线程
[thread start];
创建方式二(不能拿到子线程对象,不需要手动开启子线程,快速
)
// 第二种创建子线程的方式
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
创建方式三(系统自动创建子线程并在self的@selector方法中执行,快速
)
// 第三种创建方式
[self performSelectorInBackground:@selector(run) withObject:nil];