美文网首页
线程阻塞 pthread

线程阻塞 pthread

作者: solozyx | 来源:发表于2016-08-09 10:42 被阅读234次

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

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等系统
跨平台\可移植
使用难度大,程序员管理线程生命周期,在实际开发中几乎不用

相关文章

网友评论

      本文标题:线程阻塞 pthread

      本文链接:https://www.haomeiwen.com/subject/mlxdsttx.html