ios30---pthread, NSThread, GCD, NSOperation

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios30---pthread, NSThread, GCD, NSOperation相关的知识,希望对你有一定的参考价值。

pthread(线程库,很早就有的技术,了解):
一套通用的多线程API
适用于Unix\Linux\Windows等系统(java开发也有pthread)
跨平台\可移植
使用难度大(全是C函数)

C语言

程序员管理线程生命周期,几乎不用

 

NSThread(掌握):
使用更加面向对象
简单易用,可直接操作线程对象

OC语言

程序员管理线程生命周期(管生不管死),偶尔使用

 

GCD(功能强大,重点):
旨在替代NSThread等线程技术
充分利用设备的多核(特点)

c语言

自动管理线程生命周期,经常使用


NSOperation(重点):
基于GCD(底层是GCD)
比GCD多了一些更简单实用的功能
使用更加面向对象

OC语言

自动管理线程生命周期,经常使用

 

//
//  ViewController.m
//  02-了解-pthread简单使用
//
//  Created by xiaomage on 16/2/18.
//  Copyright ? 2016年 小码哥. All rights reserved.
//

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

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

   
}

- (IBAction)btnClick:(id)sender {

    
    
//    NSLog(@"%@",[NSThread currentThread]);
    
    //1.创建线程对象,包含头文件#import <pthread.h>
    pthread_t thread;
    
    //2.创建线程函数
    /*
     第一个参数:线程对象 传递地址
     第二个参数:线程的属性 NULL
     第三个参数:指向函数的指针
     第四个参数:函数需要接受的参数
     */
    pthread_create(&thread, NULL, task, NULL);
    
    
//    //1.创建线程对象
    pthread_t threadB;
//    
//    //2.创建线程函数
//    /*
//     第一个参数:线程对象 传递地址
//     第二个参数:线程的属性 NULL
//     第三个参数:指向函数的指针
//     第四个参数:函数需要接受的参数
//     */
    pthread_create(&threadB, NULL, task, NULL);
    
    pthread_equal(thread, threadB);

}

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

@end

 













以上是关于ios30---pthread, NSThread, GCD, NSOperation的主要内容,如果未能解决你的问题,请参考以下文章

iOS —— 多线程NSThread

iOS多线程篇:NSThread

iOS 多线程NSThread理解与场景示例

iOS 多线程之 NSThread的基本使用

iOS多线程篇:NSThread简单介绍和使用

iOS开发开辟线程总结--NSThread