一个正在运行的应用程序是一个进程,一个进程会默认开启一个主线程,但是在主线程中的操作是串行的,也就是当有多个任务同时需要完成的时候,是按照顺序一个个执行。因此,为了提高效率,会在进程中开启多个线程,每个线程可以并行的执行不同的任务。 此外,在ios程序中,处理用户触摸事件、刷新 ...
一个正在运行的应用程序是一个进程,一个进程会默认开启一个主线程,但是在主线程中的操作是串行的,也就是当有多个任务同时需要完成的时候,是按照顺序一个个执行。因此,为了提高效率,会在进程中开启多个线程,每个线程可以并行的执行不同的任务。
此外,在ios程序中,处理用户触摸事件、刷新界面等操作是必须放到主线程中实现的,因此那些比较耗费资源的,比如从网络获取数据、下载等操作可以放到子线程中,不然的话,很容易造成主线程阻塞,一旦主线程阻塞,就会出现卡顿的现象,影响用户体验。
在ios中,使用多线程有三种方式,分别是:
(1)NSThread
NSThread是一种比较原始的使用线程的方式,它是轻量级的方式,与其他方式相比,能更直观的控制线程对象。但是通过这种方式,需要管理线程的生命周期,如果想实现同步,还需要加锁,会加大系统开销。
(2)NSOperation和NSOperationQueue
NSOperation以面向对象的方法封装了需要执行的操作,然后将这个操作放到一个NSOperationQueue中异步执行,不需要去管理线程与处理同步的问题。
(3)Grand Centeral Dispatch
简称GCD,是c语言的API。GCD中提供了一些新特性来实现设备多核的并行编程。
在本篇文章,我们先来讲解一下NSThread的使用。
NSThread
NSThread是线程类,一个NSThread实例就代表是一个线程。
获取主线程
代码
NSThread *mainThread = [NSThread mainThread];
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:IOS 多线程 NSThread
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。