线程阻塞 pthread

主线程执行耗时操作 阻塞主线程

1-主线程执行耗时操作阻塞用户与UI的交互.png
- (IBAction)buttonClick {
    for (NSInteger i = 0; i<50000; i++) {
        NSLog(@"------buttonClick---%zd", i);
    }
}

用户点击了按钮,在打印完50000个数字之前,用户与页面UI控件的交互被阻塞

pthread

#import "ViewController.h"
#import <pthread.h>

@interface ViewController ()

@end

@implementation ViewController

void * run(void *param)
{
    for (NSInteger i = 0; i<50000; i++) {
        NSLog(@"------buttonClick---%zd--%@", i, [NSThread currentThread]);
    }
    return NULL;
}

- (IBAction)buttonClick:(id)sender {
    pthread_t thread;
    pthread_create(&thread, NULL, run, NULL);
    
    pthread_t thread2;
    pthread_create(&thread2, NULL, run, NULL);
}

@end

pthread:纯C
一套通用的多线程API
适用于Unix\Linux\Windows等系统
跨平台\可移植
使用难度大,程序员管理线程生命周期,在实际开发中几乎不用

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 160,128评论 24 690
  • 一一吃面时用pororo训练筷,问:pororo,你叫什么名字? 自己又回答:你叫pororo 一一吃蛋黄莲蓉月饼...
    康康recording阅读 84评论 0 2
  • 说到风度,人们自然会想起英国绅士。我所理解的绅士,应该是那种有德性,有教养、有礼貌、尊重妇女的人。 记得那年在招远...
    好风如水yt阅读 480评论 2 3
  • TP框架中的SESSION 赋值session('name',1); 如果session('1',name);赋值...
    张金宇阅读 93评论 0 0