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

 

相关文章