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 = ; i<; i++) {
NSLog(@"%zd----%@",i,[NSThread currentThread]);
} NSLog(@"%@--------",[NSThread currentThread]);
return NULL;
} @end
ios30---pthread, NSThread, GCD, NSOperation的更多相关文章
- iOS-多线程--(pthread/NSThread/GCD/NSOperation)--总结
零.线程的注意点(掌握) .不要同时开太多的线程(~3条线程即可,不要超过5条) .线程概念 > 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件 > 子线程 : 后台线程,异 ...
- 线程间通信的三种方式(NSThread,GCD,NSOperation)
一.NSThread线程间通信 #import "ViewController.h" @interface ViewController ()<UIScrollViewDel ...
- 多线程之pthread, NSThread, NSOperation, GCD
关于多线程会有一系列如下:多线程之概念解析 多线程之pthread, NSThread, NSOperation, GCD 多线程之NSThread 多线程之NSOperation 多线程之GCD p ...
- iOS开发笔记5:多线程之NSThread、NSOperation及GCD
这篇主要总结下iOS开发中多线程的使用,多线程开发一般使用NSThread.NSOperation及GCD三种方式,常用GCD及NSOperation. 1.NSThread 创建线程主要有以下三种方 ...
- iOS开发之多线程(NSThread、NSOperation、GCD)
整理一些多线程相关的知识. 并行 & 并发 1.并行:并行是相对于多核而言的,几个任务同时执行.2.并发:并发是相对于单核而言的,几个任务之间快速切换运行,看起来像是"同时" ...
- iOS多线程 NSThread/GCD/NSOperationQueue
无论是GCD,NSOperationQueue或是NSThread, 都没有线程安全 在需要同步的时候需要使用NSLock或者它的子类进行加锁同步 "] UTF8String], DISPA ...
- iOS GCD NSOperation NSThread等多线程各种举例详解(拷贝)
2年多的iOS之路匆匆而过,期间也拜读来不少大神的博客,近来突然为自己一直做伸手党感到羞耻,是时候回馈社会.回想当年自己还是小白的时候,照着一些iOS多线程教程学,也只是照抄,只知其然.不知其所以然. ...
- 多线程(NSThread、NSOperation、GCD)编程浅谈
一.基本概念 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动.可以理解成一个运行中的应用程序.线程:程序执行流的最小单元,线程是进程中的一个实体.同步:只能在当前线程按先后顺序依次执行 ...
- iOS之多线程开发NSThread、NSOperation、GCD
原文出处: 容芳志的博客 欢迎分享原创到伯乐头条 简介iOS有三种多线程编程的技术,分别是:(一)NSThread(二)Cocoa NSOperation(三)GCD(全称:Grand Centr ...
随机推荐
- 标量子查询中有ROWNUM=1怎么改?
碰到标量子查询中有ROWNUM=1怎么改? select to_date(o.postdate,'yyyymmdd'), (select cur.c_code from cur_tbl cur whe ...
- Codeforces Beta Round #19D(Points)线段树
D. Points time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...
- SpringMVC Controller的返回类型
Controller的三种返回类型中 ModelAndView类型 带数据带跳转页面 String 跳转页面不带数据 void 通常是ajax格式请求时使用 1返回ModelAndView contr ...
- pcb中几个层的解释
阻焊层(Solder Mask):又称为绿油层,是PCB的非布线层,用于制成丝网漏印板,将不需要焊接的地方涂一层阻焊物质,防止焊接PCB时焊锡在高温下的流动性.在阻焊层上预留的焊盘大小,要比实际焊盘大 ...
- [luoguP1086] 花生采摘(模拟)
传送门 模拟... 代码 #include <cstdio> #include <iostream> #include <algorithm> #define ab ...
- noip模拟赛 补兵
分析:比较难想的一道dp题.要想补兵的数量最多,最后每个小兵的血量肯定是呈一个阶梯状的:i,i+1,i+2......i+k.那么记录一下每个血量i离它最近的小兵的血量是多少,记作cur[i].那么把 ...
- codevs1792 分解质因数
题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描述 Input Description 输入一个整数 N 输出描述 Output Description 输出 分解质 ...
- Tyvj 1176 火焰巨魔的惆怅
Tyvj 1176 火焰巨魔的惆怅 背景 TYVJ2月月赛第一道 巨魔家族在某天受到了其他种族的屠杀,作为一个英雄,他主动担任了断后的任务,但是,在巨魔家族整体转移过后,火焰巨魔却被困住了,他出逃的方 ...
- 【Eclipse】eclipse安装JAVA反编译插件
前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面 ...
- msp430入门编程00
msp430单片机最小系统 msp430入门学习 msp430入门编程