pthread(线程库,很早就有的技术,了解):
一套通用的多线程API
适用于UnixLinuxWindows等系统(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