多线程

来源:互联网 发布:医疗教育软件开发 编辑:程序博客网 时间:2024/06/06 23:55

今天给大家介绍一下多线程的基本概念
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语言的。
0 0
原创粉丝点击