探究iOS线程调用栈及符号化 概念 调用栈,也称为执行栈、控制栈、运行时栈与机器栈,是计算机科学中存储运行子程序的重要的数据结构,主要存放返回地址、本地变量、参数及环境传递,用于跟踪每个活动的子例程在完成执行后应该返回控制的点。 一个线程的调用栈如上图所示,它分为若干栈帧(frame),每个栈帧对应 ...
分类:
移动开发 时间:
2020-07-21 01:10:25
阅读次数:
157
#import "ViewController.h" #import <pthread.h> @interface ViewController () @property (nonatomic, strong) NSCondition *lock; @property (nonatomic, str ...
分类:
移动开发 时间:
2020-02-09 23:44:18
阅读次数:
88
#import "ViewController.h" #import <libkern/OSAtomic.h> @interface ViewController () @property (nonatomic,assign) int ticket; //@property (nonatomic,a ...
分类:
移动开发 时间:
2020-02-08 00:44:13
阅读次数:
191
一,前言 线程安全是iOS开发中避免了的话题,随着多线程的使用,对于资源的竞争以及数据的操作都可能存在风险,所以有必要在操作时保证线程安全。 二,为什么要使用锁? 由于一个进程中不可避免的存在多线程,所以不可避免的存在多个线程访问同一个数据的情况。但是为了数据的安全性,当一个线程访问数据的时候,其它 ...
分类:
移动开发 时间:
2018-12-02 10:36:05
阅读次数:
175
依赖的作用: 在iOS开发中,我们经常会用到一个线程需要等待另一个结束才能进行的需求,这种需求其实有很实用的解决办法.下面我将列举一些目前用到的方法: //需求:: 用NSOpertion和NSOpertionQueue处理A,B,C,D,E三个线程,要求执行完A,B,D,E后才能执行C,怎么做? ...
分类:
移动开发 时间:
2017-08-17 20:06:36
阅读次数:
271
当线程的数量大于一个的时候,线程之间可能会产生通信,既一个线程产生的结果要被另一个线程用到。 比如常用的图片的加载就是这个样子。图片的加载是在子线程进行的,当图片加载完毕,就会回到主线程中刷新UI,展示图片。 本文参考文顶顶的博客: http://www.cnblogs.com/wendingdin ...
分类:
移动开发 时间:
2017-06-15 21:39:36
阅读次数:
258
1.获取当前线程 (2)创建完线程自动启动 (3)隐式创建 ...
分类:
移动开发 时间:
2017-06-14 22:56:10
阅读次数:
266
【理论】 进程:一个可执行的程序 任务:一块可执行的代码 线程:指的是一个独立的代码执行路径,线程是代码执行路径的最小单位 串行和并行:串行是一次只能执行一个任务,并行是一次能执行多个任务 并行:是CPU的多核芯同时执行多个任务 并发:是单核CPU交替执行两个任务 【iOS 线程简述】 iOS 线程 ...
分类:
移动开发 时间:
2017-06-12 11:54:25
阅读次数:
234
多线程 1.NSThread 1> 开线程的几种方式* 先创建,后启动NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];[thread start];* 直接启动[ ...
分类:
移动开发 时间:
2017-03-22 23:05:35
阅读次数:
172
1、从网络上 下载一张图片将它显示在view上 2、从网络上 下载两张图片,等他们两个都下载完成后,将他们拼成一张图片。 ...
分类:
移动开发 时间:
2016-06-15 18:40:54
阅读次数:
160