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 ...
随机推荐
- getDate() 获取时间 如2018年09月21日 11:32:11
function p(s) { return s < 10 ? '0' + s: s;} function getDate() { var myDate = new Date(); //获取当前 ...
- Visual Studio 2013/2015/2017快捷键(转载)
本文为转载文章,原文:[心存善念] [Fonour] 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解 ...
- Linux中搭建FTP服务器
FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...
- LINUX系统---中级相关操作和知识
LINUX系统的中级,来搞一些LINUX安全相关的东西,还有在公司生成中长搞的集群. RHCS集群 什么是高可用 什么是热备 什么是分布式
- 真正搞明白Python中Django和Flask框架的区别
在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...
- web前端开发——HTML
一.简介 1.发展史 (1)web1.0 时代 产物:网页制作 那时的网页主要是静态网页,即没有与用户交互,仅仅是提供信息浏览的网页.如QQ日志.博文等. 网页制作三剑客:Dreamweaver+Fi ...
- restful(2):视图
视图部分小结: # as_view()中的参数:利用参数(一个字典)来指定什么方式用什么方法来执行(哪种请求方式由哪种内部方法来执行) # 例如 Retrieve时,需要在对应的url中添加有名分组 ...
- Jquery根据JSON生成Table
先说下背景 本人属于juqery小白中的极品小白.基本对于JS jquery这些不懂.用到时候基本百度下 拿过来改改OK. 上面这东西让我弄了三天.可能对于其他人来说 一天就搞定了 .看来还真得去学一 ...
- 【ZJOI2017 Round1练习&BZOJ5354】D7T3 room(DP)
题意: 思路: 写了两种版本 考场版本 ..,..]of longint; t:..,..]of longint; n,m,i,j,k,oo,ans,d1:longint; function min( ...
- [bzoj2194]快速傅立叶之二_FFT
快速傅立叶之二 bzoj-2194 题目大意:给定两个长度为$n$的序列$a$和$b$.求$c$序列,其中:$c_i=\sum\limits_{j=i}^{n-1} a_j\times b_{j-i} ...