码迷,mamicode.com
首页 > 移动开发 > 详细

ios30---pthread, NSThread, GCD, NSOperation

时间:2017-09-07 13:40:54      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:read   使用   sop   java开发   基于   面向   cli   port   对象   

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

标签:read   使用   sop   java开发   基于   面向   cli   port   对象   

原文地址:http://www.cnblogs.com/yaowen/p/7488832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!