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 ...
随机推荐
- iOS缓存到sandbox
在手机应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在iOS设备中加一个缓存的机制,前面一篇文章介绍了iOS设备的内存缓存,这篇文章将设计一个本地缓存的机制. 功能需 ...
- struct 和class 区别
最开始,就让我们来讨论一下一个最最基本,也最最容易被人忽视掉的问题——C++中的struct和class有什么区别?如果谈到C中的struct和C++中的class的区别,你应该会告诉我很多.但我现在 ...
- 题解 P1967 货车运输
题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能 ...
- Spring 实现 IoC
理解 “ 控制反转(IoC)” 控制反转(IoC):用白话来讲,就是由 Spring 容器控制程序中类与类之间的关系,而非传统实现中,由程序代码直接操控.这也就是所谓 “控制反转” 的概念所在:控 ...
- JavaScript中的特殊数据类型
JavaScript中的特殊数据类型 制作人:全心全意 转义字符 以反斜杠开头的不可显示的特殊字符通常为控制字符,也被称为转义字符.通常转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混 ...
- PHP:验证手机号码合法性
文章来源:http://www.cnblogs.com/hello-tl/p/7592333.html /** * [verifyPhone description] 效验手机号码合法性 * @par ...
- Archive log restore using RMAN for Logminer (http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=26816)
Subject: Archive log restore using RMAN for Logminer Author: Edwin Weele van der, Netherlands Date: ...
- Codeforces704B. Ant Man
n<=5000个数轴上的点,有属性x,a,b,c,d,从i跳到j的代价如下: 问从s跳到t的最小代价. 方法?:先构造s->t链,然后依次插入其他点,每次选个最佳的位置.过了这题,正确性不 ...
- POJ 2778 (AC自动机+矩阵乘法)
POJ 2778 DNA Sequence Problem : 给m个只含有(A,G,C,T)的模式串(m <= 10, len <=10), 询问所有长度为n的只含有(A,G,C,T)的 ...
- cogs——2419. [HZOI 2016]公路修建2
2419. [HZOI 2016]公路修建2 ★☆ 输入文件:hzoi_road2.in 输出文件:hzoi_road2.out 简单对比时间限制:1 s 内存限制:128 MB [题 ...