一个程序运行之后会默认的去开启一个线程,我们称之为主线程或者UI线程
主线程主要用来刷新UI界面,处理UI事件(比如:点击、滚动、拖拽等事件)
主线程使用的注意
不要将耗时的操作放到主线程中
耗时的操作会卡住主线程,会严重的影响UI的流畅度,给用户一种卡顿的体验。
ios多线程技术的方案 其中NSThread是苹果对pthread的一个封装
关于pthread的简单使用
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
/* int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
const pthread_attr_t * _Nullable __restrict,
void * _Nullable (* _Nonnull)(void * _Nullable),
void * _Nullable __restrict);
*/
//第一个参数是线程编号的地址
//第二个参数是线程的属性
//第三个参数是线程要执行的函数void *是返回类型(*)是函数的地址(void *)是函数的参数
//第四个参数就是要执行函数的参数,是指向任何类型的指针。
//函数的返回值是int型的,0是成功,非0就是失败,返回一个错误码
pthread_t pthread;
int a=pthread_create(&pthread, NULL, test2, NULL);
if(a==0)
{
NSLog(@"成功");
}
else
{
NSLog(@"失败");
}
}
//函数的返回值是void *,所以返回一个NULL;
void * test2(void * param)
{
NSLog(@"哈哈");
return NULL;
}