多线程
今天给大家介绍一下多线程的基本概念
1.进程的基本概念
每一个进程都是一个应用程序,都有独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况。
2.多线程的基本概念
- 每一个程序都有一个主线程,程序启动时创建(调用main来启动)
- 主线程的生命周期是和应用程序绑定的,程序退出时,主线程也就停止了。
- 多线程技术表示,一个应用程序有多个线程,使用多线程能提供CPU的使用率,防止主线程阻塞。
- 任何有可能阻塞主线程的任务不要在主线程执行(访问网络)
3.多线程使用要注意:
- 线程使用不是无节制的
- 只有主线程有直接修改UI能力
4.三种多线程技术
- NSTread是每个NSTread对象对应一个线程,量级矫情5,是对pthread的抽象(pthread是POSIX线程的API,是C语言的技术,可以直接操作线程)。
- GCD(Grand Central Dispatch)是基于C语言的框架,使用队列管理线程,可以充分利用多核。
- NSOperation/NSOperationQueue 是面向对象的线程技术,是对GCD的抽象。
5.三种对象的对比
- NSTread:
优点:比其他两个轻量级,使用简单
缺点:需要自己管理线程的生命周期、线程同步、枷锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销。 - NSOperation
无需关心线程管理数据同步,是面向对象的 - GCD
是由苹果开发的一个多核编程的解决方案。IOS4.0+才能使用,建议用此方法。
GCD是基于C语言的。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。